рд╕реНрд╡рд┐рдВрдЧред рджрд╕ рдЙрдкрдпреЛрдЧреА рд╕рд░рд▓ рдмрд╛рддреЗрдВ

рдЫрд╡рд┐

рдореИрдВ рд╕реНрд╡рд┐рдВрдЧ рдкрд░ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдПрдкреНрд▓реЗрдЯреНрд╕ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд╡рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдирд┐рдкрдЯ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реАрдзреЗ рджреВрд╕рд░реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдЪрд░рдгред

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдзреНрдпрд╛рди рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдРрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред
  2. рдлрд┐рд░ рд╣рдо рдзреНрдпрд╛рди рд╕реЗ рдЬрд╛рд╡рд╛ рд▓реБрдХ рдФрд░ рдлреАрд▓ рдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рд▓реБрдХ рдФрд░ рдлреАрд▓ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рджреГрд╢реНрдп рдШрдЯрдХреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВред рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдореЗрдВ рдХрд┐рд╕ рддрд░рд╣ рдФрд░ рдХрд┐рд╕ рдХрд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  3. рд╣рдо рдЧреНрд░рд╣рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрдХ рдПрдкреНрд▓реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ ... "рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓рд╛" (рд╕реА)ред


рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдФрд░ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬреНрдЮрд╛рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдЕрдм рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред

рджрд╕ рдЙрдкрдпреЛрдЧреА рд╕рд░рд▓ рдмрд╛рддреЗрдВ


1. рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реБрдХ рдФрд░ рдлреАрд▓ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬрд╝ рдереАрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░):
javax.swing.UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 


2. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЙрдиреНрдЯ рдмрджрд▓реЗрдВ:
 FontUIResource f = new FontUIResource(new Font("Verdana", 0, 12); Enumeration<Object> keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value instanceof FontUIResource) { FontUIResource orig = (FontUIResource) value; Font font = new Font(f.getFontName(), orig.getStyle(), f.getSize()); UIManager.put(key, new FontUIResource(font)); } } 


3. рдореЛрдбрд▓ рд╕рдВрд╡рд╛рдж рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг:
 int reply = JOptionPane.showConfirmDialog(null, "Is Hello world?", "Title", JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION){ //do something } 


рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕рдВрд╡рд╛рдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ JComponent рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ:
 JComponent[] inputs //   int reply = JOptionPane.showConfirmDialog(null, inputs, "", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if (reply == JOptionPane.OK_OPTION) { ... 


4. рд╕рдВрд╡рд╛рджреЛрдВ рдХреЗ рддреНрд╡рд░рд┐рдд рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП:
 UIManager.put("OptionPane.yesButtonText", ""); UIManager.put("OptionPane.noButtonText", ""); UIManager.put("OptionPane.cancelButtonText", ""); UIManager.put("OptionPane.okButtonText", ""); 


5. JTable рдЯреЗрдмрд▓ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦреБрд▓реА рд╣реБрдИ рд╕реНрд╡рд┐рдВрдЧ рдмрд┐рдЯреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк "рдПрдХреНрд╕реЗрд▓ рдХреА рддрд░рд╣" рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

6. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддрд┐рдерд┐рдпрд╛рдВ рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЬрдХреНрд▓реЗрдиреНрдбрд░ рдШрдЯрдХ рд╣реИ
рдЫрд╡рд┐


7. рдПрдХ рдЬрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреИрдХ рдзреНрд╡рдирд┐ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП:
 myapplet.getAudioClip(MyPlayerClass.class.getResource("     ").play(); 


рдЕрдм рдХреБрдЫ рдЧреИрд░-рддреБрдЪреНрдЫ рдЪрд┐рдкреНрд╕:

8. рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдмрдЯрди рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╕рд╣реА рдХреНрд▓рд┐рдХ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде):
 public class MyTable extends JTable { public class MyButtonRenderer extends JButton implements TableCellRenderer, TableCellEditor{ private int selectedRow; private int selectedColumn; private final List<MyButtonListener> listener = new ArrayList<MyButtonListener>(); public MyButtonRenderer() { super(); addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for (MyButtonListener l : listener) { l.tableButtonClicked(selectedRow, selectedColumn); //     } } }); } public Component getTableCellRendererComponent(JTable a, Object b, boolean c, boolean d, int e, int f) { setFocusable(false); return this; } public boolean stopCellEditing() {return true;} public Object getCellEditorValue() { return null;} public boolean isCellEditable(EventObject anEvent) { return true;} public boolean shouldSelectCell(EventObject anEvent) {return true;} public Component getTableCellEditorComponent(JTable a, Object b, boolean c, int d, int e) { selectedRow = row; selectedColumn = column; setFocusable(false); return this; } public void addTableButtonListener(ITableButtonListener l) {listener.add(l);} public void removeTableButtonListener(ITableButtonListener l) {listener.remove(l);} } public MyTable(){ MyButtonRenderer button = new MyButtonRenderer(); button.addTableButtonListener(new MyButtonListenerImpl()); //  ""   .   2       this.getColumnModel().getColumn(0).setCellRenderer(new MyButtonRenderer()); this.getColumnModel().getColumn(0).setCellEditor(button); } public TableCellRenderer getCellRenderer(int row, int column) { TableCellRenderer result = super.getCellRenderer(row, column); if (result instanceof MyButtonRenderer) return result; return <  (  )>; } } 


9. рдПрдХ рдЕрдиреНрдп рдзрд╛рдЧреЗ рд╕реЗ рд╕реНрд╡рд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдордзреНрдпрд╕реНрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 class MyWorker extends SwingWorker<Void, MyObject>{ private IProxyObject action; protected SwingWorkerReal(MyObject data){ this.action = data; } protected Void doInBackground() throws Exception { if (action != null) publish(action); return null; } protected void process(List<MyObject> chunks) { //        process! } } ... new MyWorker(data).execute(); //  ... } 


10. рдФрд░ рдЕрдВрдд рдореЗрдВ, SwingWorker рдЪрд┐рдкред рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореЗрдВ рджрд╕ рд╕реНрд╡рд┐рдВрдЧрд╡реЙрдХрд░ рдереНрд░реЗрдбреНрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реНрд╡рд┐рдВрдЧрд╡реЙрдХрд░ рд╣реИрдВрдбрд▓рд░ рдереНрд░реЗрдб рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдзрд┐рдХрддрдо рджрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдЯрд╛ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЬреАрд╡рди рдЙрджрд╛рд╣рд░рдг: IE рдореЗрдВ, рдЖрдк рдПрдкреНрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде 10 рдкреЗрдЬ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ 11 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ("рд╣реИрдВрдЧ") рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рдереНрд░реЗрдбрдкреВрд▓ рдПрдХреНрд╕рдХреНрдпреВрдЯрд░ рдореЗрдВ рдереНрд░реЗрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИред

рдЕрдВрддрднрд╛рд╖рдг

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдПрдХ рдмрд╣реБрддрд╛рдпрдд рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ред рдпрджрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдирд╕ рдореЗрдВ JTable рдЪрд┐рдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In137347/


All Articles