Створення інтерфейсів прикладних програм через взаємодію об'єктів у мові Java (бібліотека Swing), страница 3

OptionsMenu  = newJMenu("Настроювання"); // Створюємоменю mi_Sun = newJMenuItem("Sun"); // Створюємопунктменю mi_Win = newJMenuItem("Windows"); // Створюємопунктменю mi_Lin = newJMenuItem("Motif"); // Створюємопунктменю mi_Sun.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvent e) {

setLookAndFeel(metal); }

});

mi_Win.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

setLookAndFeel(windows); }

});

mi_Lin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

setLookAndFeel(motif); }

});

// Додаємоствореніпунктименюдосамогоменю

OptionsMenu.add(mi_Sun);OptionsMenu.add(mi_Win);OptionsMenu.add(mi_Lin); // Додаємоменюдопанеліголовногоменю Mb.add(OptionsMenu); HelpMenu = newJMenu("Довідка");

mi_About = newJMenuItem("Про програму"); // Створюємопунктменю mi_About.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvent e) {

//AB.setVisible (true); виводимоінформаціюпропрограму JOptionPane.showMessageDialog(Ir3a.this, "Лабораторна робота №3", "Про програму",

JOptionPane.INFORMATION_MESSAGE); }

});

// Додаємоствореніпунктименюдосамогоменю HelpMenu.add(mi_About);

// Додаємоменюдопанеліголовногоменю Mb.add(HelpMenu);

setJMenuBar(Mb); // Встановлюємопанельменю // Створюємоверхнютанижнюпанелі

topPanel = newJPanelO; bottomPanel = newJPanelO; ev = newEventer(); // створюємообробник—прослуховувачдій bl = newJRadioButton("Oval"); // СтворюємоRadio-кнопкуblbl.setSelected(true); // Встановлюємо, щопоміченокнопкуbl

4


Об'єктно-орієнтоване програмування                                                                                                                                                   Java2

Ь2 = newJRadioButton("Quad"); // СтворюємоRadio-кнопкуЬ2 bl.addActionListener(ev); Ь2.addActionListener(ev); //додаємопрослуховувача

bStar = new JRadioButton("Star"); bStar.addActionListener(ev);

bg = new ButtonGroup(); // група, щопоєднуєRadio-кнопки (вонаневидима)

bg.add(bl); bg.add(b2); bg.add(bStar);

// додаємокнопкидоверхньоїпанелі

topPanel.add(bl); topPanel.add(Ь2); topPanel.add(bStar);

cbl = new JCheckBox("Filled"); cbl.setSelected(true); // СтворюємоCheckBox

cbl.addActionListener(ev); // додаємопрослуховувача

topPanel.add(cbl); // додаємокнопкудоверхньоїпанелі

getContentPane().add(topPanel,BorderLayout.NORTH); //додаємопанельзверху

mainPanel = new MyPanelO; // створюємонашуосновнупанель

// додаємоосновнупанельвцентр

getContentPane().add(mainPanel,BorderLayout.CENTER);

tf = new JTextField("Hello, Java!"); // створюємополедлявведеннятексту

bottomPanel.add(new JLabel("Введіть текст:")); // створюємоідодаємомітку

bottomPanel.add(tf); // додаємополедлявведеннятекстудонижньоїпанелі

button = newJButton("Рисувати!"); // створюємокнопку

button.addActionListener(ev); // встановлюємообробник-прослуховувач

bottomPanel.add(button); // додаємокнопкудонижньоїпанелі

getContentPane().add(bottomPanel,BorderLayout.SOUTH); // додаємопанельзнизу

bStar.addKeyListener(ev);

star = new Star(150,150,50,Color.BLUE);

}

// МожливіLook & Feels

private static final String metal

"javax.swing.plaf.metal.MetalLookAndFeel"; private static final String motif

"com.sun.java.swing.plaf.motif.MotifLookAndFeel"; private static final String windows

"com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

// ПоточнийLook & Feel

private static String currentLookAndFeel = metal;

/* *

* ЗберігаєL&F, тавикликаєupdateLookAndFeel
*/

public void setLookAndFeel(String laf) { if(currentLookAndFeel != laf) { currentLookAndFeel = laf; updateLookAndFeel(); } }

* ВстановлюєL&Fдлявсіхелементів

*/

publicvoidupdateLookAndFeel() { try{ // захищенийблок

UIManager.setLookAndFeel(currentLookAndFeel);

SwingUtilities.updateComponentTreeUI(this); } catch(Exception ex) { // обробляємоможливіпомилкивиключення

System.out.println("He можна завантажити L&F: " + currentLookAndFeel);

System.out.println(ex); } }

public static void main(String args[]) { Ir3a mainFrame = new Ir3a(); mainFrame.setSize(400, 400); mainFrame.setTitle("Лабораторна робота №3"); mainFrame.setVisible(true); } }

5