GrabDuck

Java. ������� ��� ���������� ������������ �������. ������� 4.

:

����� JComponent

��� ���������� ���������� ���������� Swing ������������ �� ������ JComponent. ��� ���� ����� �������� ������������ � ��������������� �� ������������, �� ��� ���������� ���������� ��������� ��� ������. ���������� �������� �������� �� ���.

setEnabled(boolean enabled) ������������ ��� ���������� ����������� ����������. ��� ������ ����� ������ � ���������� false ��������� ��������� � ���������� ���������. ��� ������� ���������� JComponent ��� �������������� ����� ���� �������������� ��-�������. ��������, ���������� ������ �� ����������, �� ��������� �� ����������� ���� � ������������ ����������� ����� ������. ����� isEnabled() ���������� true, ���� ������� ������� � false � ��������� ������.

setVisible(boolean visible) ��������� ���������� ����������. �� ��� ������������ ��� ��� ����������� ���� JFrame. ����������� ��������� ����������, � ������� �� ����, �� ��������� �������� �������� (������� �� �� �������� ������ ����� ����� �������� ������ � �������� ���������� �����). ����� isVisible() ���������� false, ���� ������� ������� � true � ��������� ������.

� ������� ������ setBackground(Color color) ����� �������� ���� ������� ���� ����������. ������ ������ ����� ����� ����� ���� � ��� ������, ���� ��������� ����������� (��������� ����������, �������� ����� JLabel �� ��������� �������� �����������). �������������� ��������������� ������� setOpaque(boolean opaque) � ���������� true. ������ getBackground()isOpaque() ���������� ������� ���� ������� ���� � �������������� ����������.

����� JLabel

� ����������� ���������� ��������� ����� � ���� �� ����� ���������� �����������. ��� ������������ ����� ������� �����, ������� ��������� � �������� ����� ���� � ������������ ��� ������ ��������������� ��������� ����������: ������� � ������ ���������, ���������� � �������������� ��� ������������. � Swing ����� ��������� ������� ����� ���������� ��������. ��-������, ������ ������ ����� ������������ ������. ��-������, � �� ������� ����� �������� ����������������� �����.

����� � ������ ����� ����� ������ � �� ������������. � ��� ���� ��������� ������������� � ���������� �����������, � ���������:

JLabel(String text) � ������� ����� � �������� text

JLabel(Icon image) � ������� ����� �� ������� image

JLabel(String text, Icon image, int align) � ������� ����� � �������� text � ������� image. ������ �������� ������ ������������ ������ ������ �� �������. � �������� ���� ����� ���� ������������ ���� �� ��������, ��������� � ���������� SwingConstants: LEFT, RIGHT, CENTER.

��� ������� �������� ���� � ������, ��������� ��� ������ �������� ������������. ��� � �� ������� �������, �� ����� ������������ ��� ������, ���� �� ������� ������� SimpleWindow � ���������� ��� �� ������ ���� JFrame. � ��� ������������ ����� ����������� � ����������� ��� �������� ����. ������ ����� ����� ��������� ��� ���� � ���������� ��� �� ������ (��� ����� ����� ��, ��� � �������� ���������� �����).

������� � ������������ ������ SimpleWindow ��������� ���:

SimpleWindow(){ super("���� � ��������"); setDefaultCloseOperation(EXIT_ON_CLOSE); JLabel label = new JLabel("����� �� ������� � � ��������", new ImageIcon("1.gif"), SwingConstants.RIGHT); getContentPane().add(label); pack(); }

����� ���������, ��� ������������ �� ������� ���� ��������, ���������� ������� ��������� ����, ����� ������ ����� ����� ������ �����������.

� ���������� Swing ����� (� �� ������ ���) ����� ���� ��������� ��� ����������� ������������������ ������ � ������� HTML. ��� ����� ����������, ����� ������, ��������������� � �������� ������� �����, ���������� � ���� <html>. ����� ����� ����� ������������ � ������ ����� ���� ����� HTML ������ 3.2, � ��� ����� ����������������� � ��������������� �������� ��������������. � ���� ����� ���������, ������� � ���������� ������� ������ � ������� ������������ ��:

JLabel label = new JLabel("<html>� ���� ����� ��������� " + "HTML-��������������, �������: <ul><li> <i>������</i>," + "<li><b>����������</b> <li><font size = +2> ���������� ������� </font>" + "<li>������������� ������ </ul>");

��������� ����� ����� ������� ���������� �������, ������ ��� �������� ���������� ����������� �� ����� � ������������ �������� +.

���������� �������� ������ ������ JLabel:

getText() � ���������� ������� ����� ������� �����

setText(String text) � ������ ����� ����� �������

getIcon() � ���������� ������ �����

setIcon(Icon image) � ������������� ����� ������. � �������� ������ ������ ������������ ������ ��� ��������� ��� �������� ������ ImageIcon (��� � ��������������� �������).

getVerticalAlignment(), setVerticalAlignment(int align), getHorizontalAlignment(), setHorizontalAlignment(int align) � ��� ������ ������ ��������� �������� ������� ��� ���������� ����� ������������ (�� ����������� � ���������) ����� ������������ �� ������. ��������� ��������� ������� � ���������� SwingConstants.

getVerticalTextPosition(), setVerticalTextPosition(int align), getHorizontalTextPosition(), setHorizontalTextPosition(int align) � ��� ������ ������ ��������� �������� ������� ��� ���������� ����� ������������ ������ ������������ ������. ��������� ��������� ������� � ���������� SwingConstants.

getIconTextGap(), setIconTextGap(int gap) � ��������� �������� ��� ������ ���������� ����� ������� � ������� ����� � ��������.

������ JButton

�� ��������� ������������ ������ � ���������� �����, ���� � �� �������� ������������ �� ���������. ������ � ��� ������������� � ������� (�/��� �������), �� �������� ������������ �������, ����� ����� ��������� �����-�� �������� (��� � ���-�� ���������������).

������ ��������� ����� �� ���� �������������, � ��������� JButton(), JButton(String text), JButton(Icon icon), JButton(String text, Icon icon), ��������� ������� ������� ���� �� ����. ����� ����������� �� ���������� � ��������� �����.

����� �������� ������ ����� ��������� ������ ��� ��������� � ��� ��������� ���������. ����� setRolloverIcon(Icon icon) ��������� ������ ������, ������� ����� ���������� ��� ��������� �� ������ ����, setPressedIcon(Icon icon) � ������ ��� ������ � ������� ���������, setDisableIcon(Icon icon) � ������ ��� ���������� ������. ������� �� ���� ������� ������������� ����� get.

����� setMargin(Insets margin) ��������� ������ �������� �������� �� ������ ������� �� ������ �� �� �����. ������ ������ Insets, ������� ���������� � ���� �����, ����� ���� ������ ������������� � �������� �������������� �����������, ��������� �������� ��������: Insets(int top, int left, int bottom, int right). ����� getMargin() ���������� �������� ������� �������� � ���� ������� ���� �� ������.

��� ������ ������ JLabel, ��������� � ���������� �������, ������������ � � ������ JButton. � ������� ���� ������� ����� �������� ������ � ����� ������� �� ������, � ����� ��������� �� �������� ������������� ���� ������������ ����� � ������������ ���� ������ (� ������ ��������).

����������� ������� setBorderPainted(boolean borderPainted), setFocusPainted(boolean focusPainted), setContentAreaFilled(boolean contentAreaFilled) ����� ��������� (���������� false) � �������� ������� (���������� true) ���������� �����, ���������� ������ (������, �� ������� ��������� �����, ���������� ���������� ���������������) � �������� ������ � ������� ���������.

��� ������� �������� ������ �� ������� � � ��������, ������� �� ������� � ������������ ������ ������������ ������ (����� ����� �������� ����� � ����� ������������ ������).

SimpleWindow(){ super("���� � �������"); setDefaultCloseOperation(EXIT_ON_CLOSE); JButton button = new JButton("������", new ImageIcon("1.gif")); button.setMargin(new Insets(0, 10, 20, 30)); button.setVerticalTextPosition(SwingConstants.TOP); button.setHorizontalTextPosition(SwingConstants.LEFT); getContentPane().add(button); pack(); }

���������� JToggleButton, JCheckBox, JRadioButton

��������� JToggleButton ������������ ����� ������, ������� ����� ���������� � ���� ����������: ������� � ����������. ����� ������������ ������� ������ �� ����� ������, ��� �������� ���� ���������. ������ ����� ������� ����� ���� ������ �������������� �� ���������������� ������ ���������� ���������. ������ [I] �� ������ ������������� ��� ������� ��������� ���������� � ���������� ������, �� � ������������� � ��� ������� ��� ����������.

�������� ����������� � JToggleButton(String text, Icon icon, boolean selected) ������� ������ � ��������� ��������, ������� � ������� ����������. ������ ����� ��������� � ��������� ��������� ����������� �����, ������ ����� setSelected(boolean selected). ����� isSelected() ���������� true, ���� ������ ������� (�.�. ��������� � ������� ���������) � false � ��������� �������.

�� ������ JToggleButton ����������� ����� JCheckBox � ������. ���� ����� ����� ����� ����� �� ����� ������������� � �������, �.�. �� ��������� ���������������� ������. ������������ �������� ����� ���� � �� ������� ����: JCheckBox �������� �� ��� ������, � ��� ��������� ���������, � ������� ����� ��������� ��� ������ �������.

����������� ������� ����� ���� ����� JRadioButton � ������������� ��� �����������, ������ ���������� ��� ������ ������, ����� ��� �� �������� � ������ � ������ � ���������� ���������.

�������� �� ��, ��� ������ JCheckBoxJRadioButton ����� ���� ��������� ��������� (� ���������� �� ������ ������ JToggleButton), �� ������� ������������ � ��������� ���������. � ���������, JRadioButton ������������ ����� ������������ ������������ �� ���������� ���������: ��������� ����� �������� ������������ � ���� ������ (���� ����� ��� ������ ��������� ������������ ������) � ��� ������ ������ �� ��������� ������ ���������� ��������� ������� ��������� � ��������� ��� ������.

��� ����, ����� �������� ����� ���������, ������������ ����������� ��������� ButtonGroup � ����������������� ������ (��������� ������������� ��� ����������). ���� �������� � ���� ����� ��������� ��������� ��������� JRadioButton, �� ��������� ������ ����� ������ ���� �� ���.

� ��������, � ButtonGroup ����� ���� ��������� �� ������ �������������, �� � ������, � ������ ������ (� ���� ������� ������). �� ��� ���������� ���������� ������� ��������� ������������ �������, �������� �������� �� ����������������� ������ ������� ���������� ������� JRadioButton (�, � ��������� ������� JToggleButton), �� �� JCheckBox.

����� add(AbstractButton button)* ��������� ������� � ������. ����� getElements() ���������� ��� �� �������� � ���� ��������� Enumeration. �� ��������� ����� �������� ���������� � ����� ���������� �������.

��������� ������, � ������� ��������� ��� ������ ������, ��� ������ � ��� �������������. ������ ������ � ������������� ���������� � ������ ButtonGroup. ��� ����, ����� ������� ������ ���� ��������� ������, ���������� ����������� ������ ���� ��������� �� ��������� ������.

SimpleWindow(){ super("������ � �������� ������, �������� � ���������������"); setDefaultCloseOperation(EXIT_ON_CLOSE); ImageIcon icon = new ImageIcon("1.gif"); // ����� ������������ ���� ������ �� ��� ������ Box mainBox = Box.createVerticalBox(); Box box1 = Box.createVerticalBox(); JToggleButton tButton1 = new JToggleButton("������ ������ 1"); JToggleButton tButton2 = new JToggleButton("������ ������ 2", icon); ButtonGroup bg = new ButtonGroup(); // ������� ������ ��������� ���������� bg.add(tButton1); bg.add(tButton2); // ������� ������ tButton1 � tButton2 ������������������ box1.add(tButton1); box1.add(tButton2); // �������� ������ tButton1 � tButton2 �� ������ box1 box1.setBorder(new TitledBorder("������ ������")); Box box2 = Box.createVerticalBox(); JCheckBox check1 = new JCheckBox("������ 1"); JCheckBox check2 = new JCheckBox("������ 2", icon); box2.add(check1); box2.add(check2); // �������� ������ �� ������ box2 box2.setBorder(new TitledBorder("������")); Box box3 = Box.createVerticalBox(); JRadioButton rButton1 = new JRadioButton("������������� 1"); JRadioButton rButton2 = new JRadioButton("������������� 2", icon); bg = new ButtonGroup(); // ������� ������ ��������� ���������� bg.add(rButton1); bg.add(rButton2); // ������� ����������� ������������������ box3.add(rButton1); box3.add(rButton2); // �������� ����������� �� ������ box3 box3.setBorder(new TitledBorder("�������������")); mainBox.add(box1); mainBox.add(box2); mainBox.add(box3); setContentPane(mainBox); pack(); }

�������� ������, �� ����� ������������ ����������� ������ ������ ������, ������� � ��������������. � ���������, �� �����, ��� � ������� ��� �������������� ������� �������� ������� ���������. �� ������� �� ����������, ������ �� ������ ������, ��� ����� ����� ������������ � �����. ���������� ���������� ��������� ������� ��� ����������� ���������, ��� ����������� ������� setSelectedIcon(Icon icon). �������� � ������ ����� �������:

check2.setSelectedIcon(new ImageIcon("2.gif"));

rButton2.setSelectedIcon(new ImageIcon("2.gif"));

������������� ������������� ������. �� ��������, ��� ���� 2.gif, ����� ��� � ���� 1.gif ������ ���������� � ��������� ��� ��������� �����: � ���������� ������ �������.

����������.

� ������������� ������� ����� ����� ��������� ������. �������� ������ ����� �������, ����� ��� ����� ���� ��������� �� ������. ���������: ����������� ������ �������� ������������ ������� ������ (������ BoxLayout).

��������� ���� JTextField

��������� ���� � ������� � ����� ������������ ���������, ��������������� ��� ����� ��������� �� ������ (������������ � ���� ������) ��������� ������. ��� �������� ���������� ���� ���� ����� ������������ ������������:

JTextField(int columns) � ������� ������ ��������� ����, ������ �������� ���������� ��� ���������� columns ��������. ��� ���� ������������ ����� ������� � ��������� ���� ������ ����� ������ �����: ��� ������ ����� ��������������.

JTextField(String text) � ������� ��������� ���� � ��������� ������� text.

JTextField(String text, int columns) � ������������� � ������ � ��������� �����.

������� ����� � ���� ����� ������� setText(String text). ����� getText() ���������� ���������� ���������� ���� �������, � getText(int offset, int length) � �������� ����������� ����� length, ������� � ������� offset.

����� ������ � ���� ����� ���������� (��� ����������� �����, ��� � � ���������� �������� ������������). ����� getSelectedText() ��������� �������� ���������� ����� ������. �������� ���������� ����� ������ ����� � ������� ������ replaceSelection(String content). ������ getSelectionStart()getSelectionEnd() ���������� ������� ����������� �������, � ������ setSelectionStart(int start)setSelectionEnd(int end) �������� ��.

����� getCaretPosition() ���������� ������� ������� (�������) � ��������� ����, � ����� setCaretPosition(int position) ��������� ������ �� ����������. ������� setCaretColor(Color color) ����� �������� ���� �������.

�� ��������� ����� � ���� ����������� � ������ ����. �������� ��� ����� ������� setHorizontalAlignment(int align), � �������� ��������� ���������� ���� �� �������� ������������, ������������ � ���� �� ������ JTextField: LEFT, CENTER, RIGHT.

���� ��� ����� ������ JPasswordField

JPasswordField �������� ������ �������� JTextField, ������� ��� ���� ����������� ��� ��������� ����. ������� ����������� � ���, ��� ���� ��������� � ���� ����� ����� �� ����������� ����: �� ���������� ����������� ��� ������ ��������, ���������� ������� ��������� ����� setEchoChar(char echo), � �������� � getEchoChar().

���� ����� JPasswordField ����������� ��� ����� ������. ����� getText() ��������� �������� ���� ������, �� ������������ �� �� ������������� (������������� ����� ���������������� ���������� ����������� ������ � ����������� ���� ������). ������ ���� ������� ������������ ����� getPassword(), ������������ ������ �������� char[]. ����� ����, ��� ��������� ������ ����� ��������� (��������, ������� � �������� �������) ������������� ��������� ���� ������ ������, ����� ������ � ����������� ������ �� ��������.

������� ��� ����� ������ JTextArea

JTextArea ����� �������� �������� JTextField � ��������� ��� ��� ������. � ������� �� ���������� ���� ������� ��� ����� ������ ��������� ������ �� ���� ������, � ���������. � ����� � ���� JTextArea ���������� ��������� �������������� �������. ��-������, ��� ����������� ���������� ����� �� �������� ������ �������, ������� ��������� ����� setWrapStyleWord(boolean wrapStyle). ���� ������� ���� ����� � ���������� true, �� ����� �� ����� ����������� � ��� �����, ��� ��� ������������ �� ������� ����������, � ����� ������� ���������� �� ����� ������. ��-������, ��� ����������� ���������� ����� (�� ���� ������� ������ ����� ������������ � ��������� ����� ������ �����, �������� �� ������� ����������. ���� ������������ ��������� ����� setLineWrap(boolean lineWrap). ������ isWrapStyleWord()isLineWrap() ���������� ������� ��������� ������ ������������ (true � ������������ � false � ��������������).

��� �������� JTextArea ���� ����� ���������� ����������� JTextArea(int rows, int columns), ��������������� ������ (���������� �����) � ������ (���������� ��������) ����������.

��� ������ �� ����� ���������� JTextArea ������������� ���������� ��� ������� ������. ����� append(String text) ��������� ������ text � ����� ��� ���������� ������, � ����� insert(String text, int position) ��������� �� � ������� position.

������������ ��� ��� ���������� �� ��������� �������. �������� ������� ����, � ������� ��������� �� � ������� ��������� BorderLayout.

SimpleWindow(){ super("������ ��������� �����������"); setDefaultCloseOperation(EXIT_ON_CLOSE); JTextField textField = new JTextField("��������� ����", 20); textField.setCaretColor(Color.RED); textField.setHorizontalAlignment(JTextField.RIGHT); JPasswordField passwordField = new JPasswordField(20); passwordField.setEchoChar('$'); passwordField.setText("������"); JTextArea textArea = new JTextArea(5, 20); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); for (int i = 0; i <= 20; i++) textArea.append("������� ��� ����� ���������� ����������� "); getContentPane().add(textField, BorderLayout.NORTH); getContentPane().add(textArea); getContentPane().add(passwordField, BorderLayout.SOUTH); pack(); }

��� ����, ����� ����� ������ ����������� ������ ��������� �������, �������� �� ������� true �� false � ������� ������� setLineWrap()setWrapStyleWord(). ������������� �� ���������� ������ ����������. ��������� ������� ����, ����� ������, ����� ������� ����� ��������������� ��� ��������� ��� ������������.

����������.

����������� � ���� �� �� ����� ��� ����������, �� � ������� ��������� ���������� FlowLayout, ������� ������ ������������� ��� ����������� �� ���������������� �������. ������������� �� ���, ��� ����� ���� ������� JTextArea ��� ���������� � ��� ������ ������.

������ ��������� JScrollPane

�������� �� ���������� ���������� JTextArea � ���������� �������, ����� ����� ���������� ��������, ������� ���������, ����� ������ ���������� ������ � ������ ����������� �����. � ����������� �� ������������� ��������� ������������ ����� ���� ����������, ����� �� ������� ����������, ���� ���������� ��� ������� (�� � ����� ������ �������� ��������� �������� ����). � ����� ������� ������� ������������� ����� ���������, �� � Swing ������ ��������� ���� ����� �� ����������.

� �������, �������� � ���������� ������ ��������� �� ����� ���� ����� ������. ��� ����� ������ ��������� JScrollPane � ������ ���������. ���� ����� ��� ������ ������������ �� ��������� ������ ����������� ������������ ������������, ������������ ���� ������ � �������� ���������. ��������, ����� ��������� ������� textArea �� ����������� ������� ������ ������ ���������, ���������� �������� �������

getContentPane().add(textArea);

�� �������

getContentPane().add(new JScrollPane(textArea));

� ���� ������� ��������� ������ � �������� ���������, � ��� ���������� ������ textArea, � ���� ������ ����������� � ������ ����������� ����. ������ ����� �������� ��������������. � � ������ ���������� ��������� FlowLayout ��� BoxLayout ��������� JTextArea �� ����� �������������� ��� ���� ���������� (����� ����� ���������������� ������, ��������������� ���������� ������������) �, ��� �������������, ���������� ������� ���������.

��������� �������� JScrollPane ��������:

setHorizontalScrollBarPolicy(int policy) � ��������� ������ ��������� ������ � �������������� ������� ���������. ��������� �������� ������������ ����������� HORIZONTAL_SCROLLBAR_ALWAYS (���������� ������), HORIZONTAL_SCROLLBAR_AS_NEEDED (���������� ��� �������������) � HORIZONTAL_SCROLLBAR_NEVER (�� ���������� �������). ������ ��������� ���������� � ���������� ScrollPaneConstants.

�� ����������� � �����������

� ���������� ScrollPaneConstants, �� ������� �� ������ ������, � ���������� ������������� ���������. ������, ����� ����� �� �������� �������� ������������ ����� ����� SwingConstants, ���������������� ��� �������� ������������ � ������� �����. ���� ����� (� ����� �������� ��� SimpleWindow) ����� ���������� ���������, ������������ � �������� ���������� (��������, ��� ������������ ��������� �����������), ������������ �����, ����������� ��������� ����� ����. ����� ����� ����������� ������ ��������� � ������������ ��� ��� ��������� ��� ����. ��������, �� ����� �� ���������� ����������� ������ SimpleWindow ��������� �������:

class SimpleWindow extends JFrame implements ScrollPaneConstants { ... }

� ������ ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER ������ ������ HORIZONTAL_SCROLLBAR_NEVER �����, ��� ��� ����������.

setVerticalScrollBarPolicy(int policy) ��������� ������ ��������� ������ � ������������ ������� ��������� ����������� �������� VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDEDVERTICAL_SCROLLBAR_NEVER.*

���������������� ������ JToolBar

����������� ����������� ��������� ������������� ������� ���������������� ������, ������������� ����� ������ ���� ��������� � ���������� ������, ���������� ������ � ������ �������� ����������, ������ ��������������� �������� ����. � Swing ��� ���������������� ������� ���������� ���������� ��������� JToolBar, � ������� �������� ������ ����������� ����������������.

�� ���� ��� ������ ����� � �������. �������� ���� � ���������� ������������ BorderLayout, ��������� �� ������ ������� ��� ����� ������ JTextArea, � � ������� ������� ��������� ���������������� ������ � ����� �������� � ����� ������������:

SimpleWindow(){ super("������ ������������� JToolBar"); setDefaultCloseOperation(EXIT_ON_CLOSE); JTextArea textArea = new JTextArea(5, 20); getContentPane().add(textArea); JToolBar toolBar = new JToolBar("���������������� ������"); toolBar.add(new JButton("������ 1")); toolBar.add(new JButton("������ 2")); toolBar.addSeparator(); toolBar.add(new JButton("������ 3")); getContentPane().add(toolBar, BorderLayout.NORTH); pack(); }

��������� ������ � ������������������� � ���������������� �������. ���������� ����������� �� �� ������� ������� ���� � ���������� � �����-���� ������. ����������� �� �� ������ ���� ���, ����� ������ ����� ��������������� �����. ��� ���� ������ ������ ������������ ��� ������������ �����, ���� ���� ������ ���, � �� ������ �������� ��������. ���� ������� ��������������� ������ ������� � ���������, ��� �������� � ���� ����, � �� �����, ��� ��� ���� ���������� ��������� ���.

����, ������ ������� ������ ����������������� ������ ������������ ����������� ���������������� ������. �������� ����, ���������� ����� �������� ������ JToolBar:

����������� JToolBar(String title) ������� �������������� ������ � �������� ����������. �������������� ������ ������������� ��� ������������ � ������� ���� ������ ������� ������������ ������ (������� ������������ BorderLayout). ��� �������� ������������ ������ ������������ ����������� JToolBar(String title, int orientation), ��� �������� orientation �������� ���������� VERTICAL �� ���������� SwingConstants. ����� �������� ������������ JToolBar()JToolBar(int orientation), ��������� ������ ��� ���������.

setFloatable(boolean floatable) � ��������� ���� ��������� (�� ��������� ���������) ������������ ���������� ������ �� ����� �� ���������� ������������. ��� ������������� ����� isFloatable() ������������ true, ���� ���������� ������ ���������.

add(Component component) � ��������� �� ���������������� ������ ����� ������� ����������. ��������������� ������ ��������� ���������� ������� ��������� � ������� ����� ��� ������� ������������. ����� addSeparator() ��������� ����� �����������.

���������� ������ JComboBox

���������� ������ � ������ ���������������� ������� ����������. �� �������� ��������� ���������, �� ������� ������������ ����� ������� ���� � ������ ����, ���� (���� ���������� ������ ��� ���������) ������ ���� �����������.

������� ���������� ������ ����� ������������� �� ��������� JComboBox(), ����� ���� ��������� � ���� �������� ������� addItem(Object item), ����������� ����� ������� � ����� ������, ��� ������� insertItemAt(Object item, int index), ����������� �������� �������, � ������� ��������� �������� �������. ������ ����� ������������ �����������, � ������� ����� ����������� ��� �������� ����������� ������. ����� ������������� ���: JComboBox(Object[] elements)JComboBox(Vector elements). �������� ��� ���������, ��� ��� ��� ������ �������� ������������: ������������ ������ ��� ������.

���� ����� � ���������� ������ ��������� ������, ������, ��� ��� ������� �� �������� ��������� ���� �������, �� ����� ��������� ������ ����� �������. ����� ������ ������������� � ������ ������� toString(), ������ ��� ������ � ����� ������������ ��� � ���������� ������.

����� getItemAt(int index) ��������� ���������� � ������������� ��������.

����� removeAllItems() ������� �� JComboBox ��� ��������, � ����� removeItem(Object item) � ���������� ������� (��� �������, ��� �� ���������� � ������).

����� getSelectedIndex() ��������� �������� ������ ���������� ������������� �������� (�������� ���������� ������� � ����), � ����� getSelectedItem() ���������� ��� ��������� ������. ������� ���������� ������� ��������� ����� � ����������, ���������������� ������� setSelectedIndex(int index) ��� setSelectedItem(Object item).

����� ������������ ��� ������ ���� �������, ������� �� ������������ � ������, ������ ���� ������ ����� setEditable(boolean editable) � ���������� true. ��� ������������� ����� isEditable().

���������� ������, � ������� ��������� ���������� ������ �� 3 ��������� � ���������� 2-�. ������, �������������� ������ �������, ���������� HTML-����. ��� ���������� ���������, ��� �������� �� ������ � ������*.

SimpleWindow(){ super("������ ������������� JComboBox"); setDefaultCloseOperation(EXIT_ON_CLOSE); String[] elements = new String[] {"����", "����", "<html><font size = +1 color = yellow>����</font>"}; JComboBox combo = new JComboBox(elements); combo.setSelectedIndex(1); JPanel panel = new JPanel(); panel.add(combo); setContentPane(panel); setSize(200,200); }

�������� JSlider

�������� ��������� ������������ ������� ��������� ����� �� ��������� ��������� ��������, �������� ���������� ���� ��������. ������ ����������� � �������� ���� ���� ����������: �� �������� ���������� ����� �����.

�������� ����������� ��������: JSlider(int orientation, int min, int max, int value). ������ �������� � ���������� �������� (HORIZONTAL ��� VERTICAL). ��������� ��������� ��������� �������������� �����������, ������������ � ������� ��������. �������� ��� �������� ��������� ������ setOrientation(int), setMinimum(int min), setMaximum(int max), setValue(int value), � �������� ������� � ��������������� �� ������ get. ���� �����, �������, ������������ ����� getValue() � ����� ����������, ����� �������� ������ ��� ������ �������� ������������.

����� �������� ����� ���� �������� ���������. ����� setMajorTickSpacing(int spacing) ��������� ������ ����������, ����� ������� ����� ���������� ������� �������, � ����� setMinorTickSpacing(int spacing) � ����������, ����� ������� ����� ���������� ��������� �������. ����� setPaintTicks(boolean paint) �������� ��� ��������� ���������� ���� �������. ����� setSnapToTicks(boolean snap) �������� ��� ��������� ����������� �������� � ��������: ���� ������� ���� ����� � ���������� true, ������������ ������ ������� ��� ������ �������� ������ ��������, ��������������� ��������. �������, ����� setPaintLabels(boolean paint) �������� ��� ��������� ���������� ����� ��� �������� ���������.

������ ������������� ������������� �������:

SimpleWindow(){ super("������ ������������� JSlider"); setDefaultCloseOperation(EXIT_ON_CLOSE); JSlider slider = new JSlider(JSlider.HORIZONTAL, 50, 150, 70); slider.setMajorTickSpacing(20); slider.setMinorTickSpacing(5); slider.setPaintTicks(true); slider.setPaintLabels(true); slider.setSnapToTicks(true); JPanel panel = new JPanel(); panel.add(slider); setContentPane(panel); pack(); }

������ �� ��������� JTabbedPane

������ ���������� ������ ���������� ���������� � ����� ���� ������� ���������� ��������� ����������, ��������� �� ������� (����� ��� ������, �������, ��������� ������� � �.�.) ����� � ���� �� �������� ��������� ������������. ���� ����� ����� ������������� ���������, ����� ��� ������ ��������� ���������� ��������� ������� ������. ��� ����, ����� �� ������� �������������� ���� � �� ����������� ���������, ����� ������������ ������ � ����������. �� ����� ������������ ��� ��������� ������� (�������), ������ �� ������� �������� ��� ��������� ������������, �� ����������� ������ � ���� (��� ����� ���� ����� ����), ��� ������������ ������� � ���������� �������. ����� ������������ ������� �� �������, ����������� ��������������� ��� ��������. �� ������ �������� ��������� ��������� ��������� ���������� (��� �������, ��� ������������ �� ������).

������� ������ �� ��������� ����� ������� �������������, � ������� ������������ ������ ����������������� �������� (LEFT, RIGHT, TOP ��� BOTTOM). �� ������ ������ ������� ����������� JTabbedPane(int orientation, int layout), ��� ������ �������� ��������� ��������, ��������������� ���������� SCROLL_TAB_LAYOUT (���� ��� ������� �� ����������, ���������� ������ ���������) ��� WRAP_TAB_LAYOUT (������� ����� ������������� � ��������� �����).

����� ����� ����� ��������� ������� ������� addTab(), ������� ��������� ���������. � ���������, ����� addTab(String title, Component tab) ��������� �������� � ��������� ������ �������, � ����� addTab(String title, Icon icon, Component tab) ��������� ������ ����� � ������ � �������. � �������� ������� ������ ������ ������ � ������������ �� ��� ���������� ����������.

�������� ������ � ������� ���������, �� ������ �� ������� �������� �� ������. ��� ��� ������� �������� � ����� for, ����� �� ������ ����� ����.

SimpleWindow(){ super("������ ������������� JTabbedPane"); setDefaultCloseOperation(EXIT_ON_CLOSE); JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT); for (int i = 1; i <= 10; i++) { JPanel panel = new JPanel(); panel.add(new JButton("������ � " + i)); tabbedPane.add("������ " + i, panel); } getContentPane().add(tabbedPane); setSize(300,200); }

����������.

�������� ������, ����� ������� ������������� �� � ��������� �����, � �������������� �, ����� ����, �������� � ������ ��������� ������� ������. ��������� ������ ��������� ���, ��� ���������� �� �������.

������ JList

������ JList � ��� ���� �� ������� �����������, ��� ����������� ������ � �������� ���������� ��������� ����� ���������� Swing, � ���������, ��������� �������-���. ���������� JTree (������) � JTable (�������) ��� ������� � � ������ ������� �� ���������������. ��� �������� ������, �� ��������� ����� ��� ������������ ����� ���� ������������ ��� ���������� � ������.

������ �������� ������ ���������, ���������� ����������� ������ JComboBox, �� �������� ����� �������������� �������������. ��-������, �� ������ ����� ������������ ��������� ��������� ������. ��-������, ������������ ����� ������� � ������ �� ���� �������, � ��������� (���� ���������� ��������������� ����� ���������).

������� ������ ����� � ������� ������������, ����������� �� ������ ������� Object[] ��� ������� Vector (���������� JComboBox). ����� setVisibleRowCount(int count) ������������� ���������� ������� ��������� ������. ��������� �������� ����� ������� �� ��� ������� ��� ��������������, ���� ��������� ������ � JScrollPane (��� �������������).

�� ��������� ������������ ����� ������� � ������ ����� ����� ���������, ����� ������� ������� Ctrl. ��� ����� ��������, ������ ����� setSelectionMode(int mode), ��� �������� �������� ����� �� �������� ������ ListSelectionModel:

SINGLE_SELECTION � ����� ���� ������� ������ ���� �������,

SINGLE_INTERVAL_SELECTION � ����� ���� �������� ��������� ���������, �� ������������ ����������� ��������,

MULTIPLE_INTERVAL_SELECTION � ����� ���� �������� ������������ ���������� ������� � ��������� ���������.

���������� ������� ������ (���� �� ����) ����� �������� ������� getSelectedValue(). ���� ����� ���������, ����� ������ ������ �� ���. ����� getSelectedValues() ���������� ��� ���������� �������� ������ � ���� ������� Object[]. ���������� �������� ������ getSelectedIndex()getSelectedIndices(), ������ ���������� ��� �� ���� ���������� ��������, � �� �������. ���� ���� ������� ������������� ������ set, ��� ��� �������� �������� ������ ����� � ����������.

��������� ������ ������������ ��������� �� ���� ������������ JList:

SimpleWindow(){ super("������ � JList"); setDefaultCloseOperation(EXIT_ON_CLOSE); Object[] elements = new Object[] {"�������", "<html><font color = red>�����", "��������� ������"}; JList list = new JList(elements); list.setVisibleRowCount(5); list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); list.setSelectedIndices(new int[] {1,2}); getContentPane().setLayout(new FlowLayout()); getContentPane().add(new JScrollPane(list)); setSize(200,150); }

��� ����, ����� ���������� ��������� � ������� �������� �� ������, ��������� �� ������������, ��������� � ������� ���������� �������� ����������, ���������� ������������� � ������� ������ ������, ��� ������� �� ����� ���������� �������.

���� ����� � �������

� �������� ��������� ������� ������������ ����, ��������������� ��������� ���� � ���������� ����, ���������� ���� ��� ����� � ������� (������� �������� ����������� ������ ������� �� �������� �������). ��� ���� �������� ��� ��������� ���� ��� ����� ������ � ������, ������� � ���� ����� � ������ �OK� � �������.

� ������ ������� ���������� ������� �� ������ (��� � ������� ������������������� ������������ �������� ��������� �����������, ������ ��� Microsoft Visio) ����� �������� ����, ����� ������������, ��� ������ ���� ����������� �������� ���������� � ����� �������� ������������ ������ ���� ������.

� ����� ���� ��� ���������, ������� ����� ����� ����������� �� ��� ��������� ������������, ������� ����� ������������ ���� �� ����������, ����������� ���������������� ������� �����������, � ������ � BoxLayout. ����� ����� ����������� ���� ���� ��� ��� �������������� ������, ������������ � ����� ������������. � ������ �� ��� ����� ������� ������:� � ��������� ����. �� ������ � ������� �������:� � ���� ��� ����� ������. � ������� ����� ��������� ��� ������. ��� ���� ���������� ������ ���������:

  1. ������ ��ʻ � ������� ������� ��������� � ������� ���� ����, ������� � ������ ������� �������������� ������ ���������� �������� ��������.
  2. ������ ������������� ���������� ���������� ����� ����������. � ���������, ��� ����� Java ����������� ��������� ������������. ����� ��������� �������� (����� ��� ��������� ���� � ������� � ����) ������ �������� ���� �� ����� �� 6 ��������. ��������� ��������������� �������� � �� 12 �������� (� ����� ������ ��� ��� ������� ������ � ���� ������). ��� ��������� �������� ������ ���������� �� ���������� 17 �������� ���� �� �����. �� ������� �������� � ��� ����� ����.
  3. �������� ������ ���� ��������� ���������. � ����� ������ �������, ������� �� ���������� ��������� ����� ���������� ������, ��������� ����� ������ ����� � ��-�� ����� ���� ����� �������� ������������ ���� �����, ��� �� ����������. ������� ������� ������������� ������ � �������� ���������� ������.
  4. ��� ���������� �������� ���� ��������� ���� ����� ����������� �������� ���� ������. ����� �� �������������, � ����� ������ ��������� ���� �������� ���� ������� ����� �������� �������� setResizable(false).

�������� ��� ���� �������� ����. ������������� �� ������ ������� � ��������������, �� � ����������� ��������� ���.

  public class LoginWindow extends JFrame {   /* ��� ����, ����� ������������ ���������� � ����������� ��������� �����, ������������� ������� �� ������� ������ ���� */ JTextField loginField; JPasswordField passwordField;   LoginWindow(){ super("���� � �������"); setDefaultCloseOperation(EXIT_ON_CLOSE); // ����������� ������ �������������� ������ (��� ����� ������) Box box1 = Box.createHorizontalBox(); JLabel loginLabel = new JLabel("�����:"); loginField = new JTextField(15); box1.add(loginLabel); box1.add(Box.createHorizontalStrut(6)); box1.add(loginField); // ����������� ������ �������������� ������ (��� ����� ������) Box box2 = Box.createHorizontalBox(); JLabel passwordLabel = new JLabel("������:"); passwordField = new JPasswordField(15); box2.add(passwordLabel); box2.add(Box.createHorizontalStrut(6)); box2.add(passwordField); // ����������� ������ �������������� ������ (� ��������) Box box3 = Box.createHorizontalBox(); JButton ok = new JButton("OK"); JButton cancel = new JButton("������"); box3.add(Box.createHorizontalGlue()); box3.add(ok); box3.add(Box.createHorizontalStrut(12)); box3.add(cancel); // �������� ������� ����������� loginLabel.setPreferredSize(passwordLabel.getPreferredSize()); // ��������� ��� �������������� ������ �� ����� ������������ Box mainBox = Box.createVerticalBox(); mainBox.setBorder(new EmptyBorder(12,12,12,12)); mainBox.add(box1); mainBox.add(Box.createVerticalStrut(12)); mainBox.add(box2); mainBox.add(Box.createVerticalStrut(17)); mainBox.add(box3); setContentPane(mainBox); pack(); setResizable(false); } }
����������

�� ������� ���� ������� ����� ����������� Swing. ���� �� ���� ��������� ��������� �������� ����������, ����� ��� ��������� ��������� �������� JProgressBar, ������� JSpinner, ������ � �������������� ������� JSplitPane, � ����� ��� ������ ��������� �����������. ������ �� ������������� � ���� ����� ����������� ������������� �������������, ����������� �� ������� ������ ������. � ���� �� ������ ��������� ���� � ���������, � ����� ���������� ���� ����� ����������� ����������� ����������� ���������, ����������� ��� ���������� ��������� �������, ��� ���������������� ������ � ����������� Swing ���������� ���������� � ����������� ��������� � ������������.

�������������� ����������

1. ���������� �.�. ����������� Java 2. (����� 11 - 14)

2. �.���������. Swing. ����������� ���������������� ����������.

������ �������� �������� �� ��� ��������� ������, ������� �� ��������������� � ��������� �������. ������� ������ �������� �������� ��� ����� ��������� ���������� ��� ������ JList, ������ JTree � ������� JTable. ������ �� ������������� ���� ����������� ���� ����� ���� ������, ����������� ������� ����� �������� �������� ������������� �� ������.