DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Використання системи Swing в Java

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2026
Тип роботи:
Звіт
Предмет:
Об’єктно-орієнтоване програмування
Група:
ЕМ
Коротко про документ

Про що ця робота

У звіті розглянуто використання бібліотеки Swing для створення графічних інтерфейсів у мові програмування Java. Наведено приклади реалізації малювання примітивів та обробки подій миші.

У роботі розглядаються

  • Java
  • Swing
  • Графічний інтерфейс
  • Об'єктно-орієнтоване програмування
  • Обробка подій
  • Лабораторна робота

Зміст і розділи

  1. Мета роботи
  2. Короткі теоретичні відомості
  3. Індивідуальне завдання
  4. Аналіз роботи програми
  5. Текст програми
  6. Висновок
Для кого:Студенти технічних спеціальностей та вивчаючі програмування на Java
Викладачі:Викладач кафедри САПР

Ключові поняття

SwingJFrameJPanelJComboBoxMouseAdapterGraphicsJavaПодіяКомпонент

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Кафедра САПР Звіт про виконання лабораторної роботи №6 з курсу: “Об’єктно-орієнтоване програмування” на тему: “Використання системи Swing в Java” Львів 2008 МЕТА РОБОТИ Метою роботи є придбання навиків програмування графічних додатків Java з використанням системи Swing. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Основні компоненти Swing Компоненти Swing можна розділити на наступні типи: контейнери верхнього рівня (класи JWindow, JFrame, JDialog і JApplet); спеціалізовані контейнери (класи JInternalFrame, JLayeredPane, JRootPane і JOptionPane); спільноцільові контейнери (класи JPanel, JScrollPane, JSplitPane, JTabbedPane і JToolBar); компоненти управління (класи JButton, JCheckBox, JRadioButton, JToggleButton, JComboBox, JList, JMenuBar, JMenu, JMenuItem, JCheckboxMenuItem, JRadioButtonMenuItem, JSeparator і JSlider); нередаговані інформаційні компоненти (класи JLabel, JProgressBar і JToolTip); редаговані інформаційні компоненти (класи JColorChooser, JFileChooser, JTable, JTree, JTextField, JPasswordField, JTextArea, JEditorPane і JTextPane). На відміну від компонентів AWT, компоненти системи Swing здатні працювати тільки по моделі делегування подій. Контейнери верхнього рівня і спеціалізовані контейнери Так само, як і для AWT, для створення вікон графічних додатків використовується не клас JWindow, а клас JFrame (вікна, що створюються класом JWindow не містять найменування вікна і кнопок управління вікном). Додатки з графічним інтерфейсом використовує, принаймні, один фрейм. Аплети також можуть використовувати фрейми. Для створення вікон, які залежать від іншого вікна (наприклад, зникають, коли згортається вікно, в якому вони використовуються) застосовуються діалогові вікна класу JDialog. Аплети, що використовують компоненти Swing, повинні бути підкласами класу JApplet. Будь-яка програма, яка використовує компоненти Swing, містить, принаймні, один контейнер верхнього рівня. Цей контейнер є коренем ієрархії контейнерів, що містять всі компоненти Swing. Як правило, окремий графічний додаток має, принаймні, одну ієрархію контейнерів, в якій коренем є JFrame. Діалогове вікно або аплет також утворюють ієрархію контейнерів, коренем якої є JDialog або JApplet. Наприклад, якщо додаток містить одне головне вікно і два діалогові вікна, то вона містить три ієрархії контейнерів. Коренева панель Кожен контейнер верхнього рівня базується на проміжному, прихованому, контейнері, званому кореневою панеллю (root pane). Коренева панель визначена в класі JRootPane. Сама коренева панель звичайно не використовується, а використовуються її компоненти, які коренева панель (клас) надає фрейму (або іншому контейнеру верхнього рівня). Коренева панель містить наступні компоненти: шарувата панель (layered pane); панель вмісту (content pane); рядок меню (menu bar) - необов'язковий компонент; скляна панель (glass bar). Єдиним обов'язковим контейнером верхнього рівня є панель вмісту. Панель вмісту Панель вмісту містить всі компоненти Swing (кнопки, написи, текстові поля і т.д.). Оскільки для контейнерів верхнього рівня вміст вікна визначається за допомогою JRootPanel і повинно, на відміну від вікон AWT, визначатися уручну, для додавання компонент або установки менеджера компоновки використовуються не методи add() і setLayout(), а методи отримання і установки панелі вмісту: public Container getContentPane() і public void setContentPane(Container contentPane) які визначені в класах JFrame, JDialog, JApplet і JInternalFrame. Так, додавання текстового поля у фрейм, діалогове вікно, аплет або внутрішній фрейм з установкою менеджера компоновки FlowLayout виглядає таким чином: Container contentPane = getContentPane(); JTextField inputField = new JTextField(15); contentPane.setLayout(new FlowLayout()); contentPane.add(inputField); Слід зазначити, що для всіх контейнерів верхнього рівня (включаючи JApplet) менеджером компоновки за умовчанням є BorderLayout. До контейнера верхнього рівня може бути додана рядок меню (menu bar). Рядок меню також розташовується усередині головного контейнера, але за межами панелі вмісту. Індивідуальне завдання Варіант 2 Малювання прямокутників в графічному вікні. При натисненні кнопки миші фіксується лівий верхній кут прямокутника. При відпуску миші фіксується правий нижній кут прямокутника, і прямокутник промальовувався на екрані. Колір зафарбовування прямокутника задається за допомогою списку, що розкривається. Кожен пункт списку містить зображення квадратика відповідного кольору. Аналіз роботи програми  Текст програми MainWindow.java import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; public class MainWindow extends JFrame { private static final long serialVersionUID = 1L; public int x0; public int y0; public int x; public int y; int xmin; int ymin; public boolean isPainting = false; private JComboBox colorsBox; private Color myColor; private Dimension frameSize; private Dimension screenSize; private Container c; MainWindow(String str) { super(str); c = getContentPane(); setSize(400, 400); setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBackground(Color.WHITE); screenSize = Toolkit.getDefaultToolkit().getScreenSize(); frameSize = getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); colorsBox = new JComboBox(new String[] { "RED", "GREEN", "BLUE" }); colorsBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { if (colorsBox.getSelectedItem().equals("RED")) { myColor = Color.RED; } if (colorsBox.getSelectedItem().equals("GREEN")) { myColor = Color.GREEN; } if (colorsBox.getSelectedItem().equals("BLUE")) { myColor = Color.BLUE; } } } }); addMouseListener(new MyMouseAdapter(this)); addMouseMotionListener(new MyMouseMotionAdapter(this)); add(colorsBox); setVisible(true); } public void paint(Graphics g) { g.setColor(myColor); colorsBox.repaint(); g.fillRect(getMin(x, x0), getMin(y, y0), Math.abs(x0 - x), Math.abs(y0 - y)); colorsBox.repaint(); } public int getMin(int x, int x0) { if (x < x0) return x; else return x0; } } MyMouseAdapter.java import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class MyMouseAdapter extends MouseAdapter { private MainWindow win; public MyMouseAdapter(MainWindow myWin) { win = myWin; } public void mousePressed(MouseEvent me) { win.x0 = me.getX(); win.y0 = me.getY(); win.isPainting = true; } public void mouseReleased(MouseEvent me) { win.x = me.getX(); win.y = me.getY(); win.isPainting = false; win.repaint(); } } MyMouseMotionAdapter.java import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; public class MyMouseMotionAdapter extends MouseMotionAdapter { private MainWindow win; public MyMouseMotionAdapter(MainWindow myWin) { win = myWin; } public void mouseDragged(MouseEvent me) { if (win.isPainting) { win.x = me.getX(); win.y = me.getY(); System.out.println("Mouse moved"); win.repaint(); } } } Run.java public class Run { public static void main(String[] args) { MainWindow frame = new MainWindow("DrawLines"); } } Висновок Під час виконання цієї лабораторної роботи я отримав навики програмування графічних додатків Java з використанням системи Swing.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!