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

*/

import j ava.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.plaf.*;

Import j ava.awt.event.KeyListener;

import java.util.EventListener;

import java.awt.event.KeyEvent;

public class Ir3a extends JFrame { public static int STEP = 5; /**

* Елементиграфічногоінтерфейсукористувача
*/

JMenuBar Mb; // Полосаменю

JMenu GameMenu, OptionsMenu, HelpMenu; // Підменю

JMenuItem mi_New, mi_Exit, mi_About, mi_Sun, mi_Win, mi_Lin; // Пунктименю

AboutBox AB; // додатковевікно

MyPanel mainPanel; // нашапанель, вніймиперевизначаємометодpaintComponent

JPanel topPanel, bottomPanel; // верхнятанижнястандартніпанелі

JRadioButton bl, Ь2, bStar; // Радіокнопки (залежнікнопки)

JCheckBox cbl; // CheckBox (незалежнакнопка)

ButtonGroup bg; // Групазалежнихкнопок (воналишелогічноіснує)

JTextField tf; // Поледлявведеннятексту

JButton button; // Простакнопка

Eventer ev; // Клас, щомистворюємодляобробкидійвпрограмі

Star star; /**

* КласMyPanel- внутрішнійкласнашоїпрограми

* вінможевикористовуватидані, щоописані

* впервинномукласінашоїпрограми (Ь1, Ь2, cbl, tf)
*/

class MyPanel extends JPanel {

public void paintComponent(Graphics g) {

super.paintComponent(g); // викликаємометодпредка if (bl.isSelectedO ) {

if (cbl.isSelectedO) g.fillOval(0,0,100,100); else g.drawOval(0,0,100,100); } else if (b2.isSelected()) {

if (cbl.isSelectedO) g.fillRect (0, 0, 100, 100) ; else g.drawRect(0,0,100,100); } else star.draw(g); g.drawstring(tf.getText(),10,150); } }

2


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

/**

* КласEventerвнутрішнійкласнашоїпрограми

* вінобробляєдії, щовикликаніелементами,

* щорозміщеніувікнінашоїпрограми
*/

class Eventer implements ActionListener, KeyListener { public void actionPerformed(ActionEvent e) {

if (e.getSource()==bl || e.getSource ()==b2 || e.getSource()==bStar ||

e.getSource()==cbl || e.getSource()==button ) repaint(); }

public void keyTyped(KeyEvent e) { // TODO: Add your code here

}

public void keyPressed(KeyEvent e) { // TODO: Add your code here switch (e.getKeyCode()) { // Якуклавішунатиснули?

case KeyEvent.VK_LEFT      : star.moveBy(-STEP, 0); break;

case KeyEvent.VK_RIGHT      : star.moveBy(STEP, 0); break;

case KeyEvent.VK_UP         : star.moveBy(0, -STEP); break;

case KeyEvent.VK_DOWN       : star.moveBy(0, STEP); break;

case KeyEvent.VK_PAGE_UP    : star.changeSize(STEP); break;

case KeyEvent.VK_PAGE_DOWN  : star.changeSize(-STEP); break;

case KeyEvent.VK_HOME      : star.rotate(STEP); break;

case KeyEvent.VK_END       : star.rotate(-STEP); break; }

repaint(); }

public void keyReleased(KeyEvent e) {

// TODO: Add your code here )

}

/* *

* КласAboutBox- внутрішнійкласнашоїпрограми

* вінможебутипотрібендляствореннядодатковоговікнапрограми
*/

class AboutBox extends JFrame { public AboutBox() { super();

setSize(300,200); } public void paint (Graphics g) {

g.drawstring("Лабораторна робота З",100,100); } }

З


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

publicIr3a() {

// необхіднийанонімнийкласдлякоректногозавершенняпрограми addWindowListener(newWindowAdapter() {

public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } });

AB = new AboutBox(); // Створюємододатковевікно

AB.setTitle("Про програму");

Mb = newJMenuBar(); // Створюємопанельголовногоменю

GameMenu = newJMenu("Гра"); // Створюємоменю

mi_New = newJMenuItem("Нова");  // Створюємопунктменю mi_Exit = newJMenuItem("Вихід"); // Створюємопунктменю // Длядеякихпунктівменюстворюємоанонімнікласипрослуховуваннядій mi_Exit.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvent e) { dispose (); System.exit(0); }

});

// Додаємоствореніпунктименюдосамогоменю GameMenu.add(mi_New); GameMenu.add(mi_Exit); // Додаємоменюдопанеліголовногоменю Mb.add(GameMe nu);