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

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

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

Рік:
2016
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування

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

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / “Основні компоненти графічного інтерфейса” Звіт до лабораторної роботи №8 з курсу “Об’єктно-орієнтоване програмування” ЛЬВІВ 2016 Мета Одержати навики побудови алгоритмів лінійних обчислювальних процесів, навчитися складати алгоритми та програмувати процеси з розгалуженням, циклами, ітераційними циклами за допомогою мови Java. Одержати навички роботи із масивами. Індивідуальне завдання Варіант 6 Малювання прямокутників в графічному вікні. При натисненні кнопки миші фіксується лівий верхній кут прямокутника. При відпуску миші фіксується правий нижній кут прямокутника, і прямокутник промальовувався на екрані. Текст програми import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.event.*; import java.awt.image.*; import javax.imageio.*; import javax.swing.filechooser.FileFilter; public class Main { // малювання int rezhim=0; int xPad; int xf; int yf; int yPad; int thickness; boolean pressed=false; // колір Color maincolor; MyFrame f; MyPanel japan; JButton colorbutton; JColorChooser tcc; BufferedImage imag; boolean loading=false; String fileName; public Main() { f=new MyFrame("Малювання прямокутника"); f.setSize(350,350); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); maincolor=Color.black; JMenuBar menuBar = new JMenuBar(); f.setJMenuBar(menuBar); menuBar.setBounds(0,0,350,30); JMenu fileMenu = new JMenu("Файл"); menuBar.add(fileMenu); Action loadAction = new AbstractAction("Open") { public void actionPerformed(ActionEvent event) { JFileChooser jf= new JFileChooser(); int result = jf.showOpenDialog(null); if(result==JFileChooser.APPROVE_OPTION) { try { // підстроюємо розміри форми // і панелі під завантажене зображення fileName = jf.getSelectedFile().getAbsolutePath(); File iF= new File(fileName); jf.addChoosableFileFilter(new TextFileFilter(".png")); jf.addChoosableFileFilter(new TextFileFilter(".jpg")); imag = ImageIO.read(iF); loading=true; f.setSize(imag.getWidth()+40, imag.getWidth()+80); japan.setSize(imag.getWidth(), imag.getWidth()); japan.repaint(); } catch (FileNotFoundException ex) { JOptionPane.showMessageDialog(f, "Такого файлу не існує"); } catch (IOException ex) { JOptionPane.showMessageDialog(f, "java.io.Exception"); } catch (Exception ex) { } } } }; JMenuItem loadMenu = new JMenuItem(loadAction); fileMenu.add(loadMenu); japan = new MyPanel(); japan.setBounds(30,30,260,260); japan.setBackground(Color.white); japan.setOpaque(true); f.add(japan); // Тулбар для кнопок JToolBar colorbar = new JToolBar("Colorbar", JToolBar.VERTICAL); colorbar.setBounds(30, 0, 260, 30); colorbutton = new JButton(); colorbutton.setBackground(maincolor); colorbutton.setBounds(15, 5, 20, 20); colorbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { ColorDialog coldi = new ColorDialog(f,"Вибір кольору"); coldi.setVisible(true); } }); colorbar.add(colorbutton); JButton redbutton = new JButton(); redbutton.setBackground(Color.red); redbutton.setBounds(40, 5, 15, 15); redbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.red; colorbutton.setBackground(maincolor); } }); colorbar.add(redbutton); JButton orangebutton = new JButton(); orangebutton.setBackground(Color.orange); orangebutton.setBounds(60, 5, 15, 15); orangebutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.orange; colorbutton.setBackground(maincolor); } }); colorbar.add(orangebutton); JButton yellowbutton = new JButton(); yellowbutton.setBackground(Color.yellow); yellowbutton.setBounds(80, 5, 15, 15); yellowbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.yellow; colorbutton.setBackground(maincolor); } }); colorbar.add(yellowbutton); JButton greenbutton = new JButton(); greenbutton.setBackground(Color.green); greenbutton.setBounds(100, 5, 15, 15); greenbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.green; colorbutton.setBackground(maincolor); } }); colorbar.add(greenbutton); JButton bluebutton = new JButton(); bluebutton.setBackground(Color.blue); bluebutton.setBounds(120, 5, 15, 15); bluebutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.blue; colorbutton.setBackground(maincolor); } }); colorbar.add(bluebutton); JButton cyanbutton = new JButton(); cyanbutton.setBackground(Color.cyan); cyanbutton.setBounds(140, 5, 15, 15); cyanbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.cyan; colorbutton.setBackground(maincolor); } }); colorbar.add(cyanbutton); JButton magentabutton = newJButton(); magentabutton.setBackground(Color.magenta); magentabutton.setBounds(160, 5, 15,15); magentabutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.magenta; colorbutton.setBackground(maincolor); } }); colorbar.add(magentabutton); JButton whitebutton = new JButton(); whitebutton.setBackground(Color.white); whitebutton.setBounds(180, 5, 15, 15); whitebutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.white; colorbutton.setBackground(maincolor); } }); colorbar.add(whitebutton); JButton blackbutton = new JButton(); blackbutton.setBackground(Color.black); blackbutton.setBounds(200, 5, 15, 15); blackbutton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { maincolor = Color.black; colorbutton.setBackground(maincolor); } }); colorbar.add(blackbutton); colorbar.setLayout(null); f.add(colorbar); tcc = new JColorChooser(maincolor); tcc.getSelectionModel().addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { maincolor = tcc.getColor(); colorbutton.setBackground(maincolor); } }); japan.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { if (pressed==true) { Graphics g = imag.getGraphics(); Graphics2D g2 = (Graphics2D)g; g2.setColor(maincolor); xPad=e.getX(); yPad=e.getY(); } japan.repaint(); } }); japan.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { Graphics g = imag.getGraphics(); Graphics2D g2 = (Graphics2D)g; g2.setColor(maincolor); } public void mousePressed(MouseEvent e) { xPad=e.getX(); yPad=e.getY(); xf=e.getX(); yf=e.getY(); pressed=true; } public void mouseReleased(MouseEvent e) { Graphics g = imag.getGraphics(); Graphics2D g2 = (Graphics2D)g; g2.setColor(maincolor); // Розрахунки для овал і прям int x1=xf, x2=xPad, y1=yf, y2=yPad; if(xf>xPad) { x2=xf; x1=xPad; } if(yf>yPad) { y2=yf; y1=yPad; } g.drawRect(x1, y1, (x2-x1), (y2-y1)); xf=0; yf=0; pressed=false; japan.repaint(); } }); f.setLayout(null); f.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Main(); } }); } class ColorDialog extends JDialog { public ColorDialog(JFrame owner, String title) { super(owner, title, true); add(tcc); setSize(200, 200); } } class MyFrame extends JFrame { public void paint(Graphics g) { super.paint(g); } public MyFrame(String title) { super(title); } } class MyPanel extends JPanel { public MyPanel() { } public void paintComponent (Graphics g) { if(imag==null) { imag = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D d2 = (Graphics2D) imag.createGraphics(); d2.setColor(Color.white); d2.fillRect(0, 0, this.getWidth(), this.getHeight()); } super.paintComponent(g); g.drawImage(imag, 0, 0,this); } } // Фільтр картинок class TextFileFilter extends FileFilter { private String ext; public TextFileFilter(String ext) { this.ext=ext; } public boolean accept(java.io.File file) { if (file.isDirectory()) return true; return (file.getName().endsWith(ext)); } public String getDescription() { return "*"+ext; } } Результат виконання програми / Висновок Виконавши дану лабораторну роботу, я одержав навики побудови алгоритмів лінійних обчислювальних процесів, навчитися складати алгоритми та програмувати процеси з розгалуженням, циклами, ітераційними циклами за допомогою мови Java. Одержати навички роботи із масивами.
Антиботан аватар за замовчуванням

25.05.2016 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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