Использование графических элементов - Java

Узнай цену своей работы

Формулировка задачи:

Решил сделать набросок графических элементов при помощи массивов. Сделал. Нужно было обращаться к кнопкам. Сделал для одной кнопки в родителе.
Листинг программы
  1. public void exittheMode(JButton exit, JFrame MF) {
  2. exit.addActionListener(new ActionListener() {
  3. public void actionPerformed(ActionEvent e) {
  4. dispose();
  5. MF.setVisible(true);
  6. MF.setSize(400, 310);
  7. }
  8. });
  9. }
Полный код родителя
Листинг программы
  1. package classPackage;
  2. import java.awt.*;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import javax.swing.*;
  6. import mainPackage.*;
  7. public class classAdminFrame extends JFrame {
  8. protected ModeFrame MF = new ModeFrame();
  9. protected JButton[] button = new JButton [2];
  10. protected String[] textBtn = {"Расcчитать и отправить стоимость тура", "Выйти из режима"};
  11. protected Integer[] btncoordxy = {0, 270, 200, 200};
  12. protected Integer[] btnscale = {255, 140, 30, 30};
  13. protected Integer[] btnsizefont = {13, 13};
  14. JLabel[] label = new JLabel[7];
  15. protected String[] textlbl = {"Расчёт стоимости тура", "Заявка есть? -", "", "Стоимость проживания одного туриста за одну ночь -", "Стоимость перевозки туда и обратно -", "Стоимость питания -", "Маржинальный доход (в процентах) -"};
  16. protected Integer[] lblcoordxy = {110, 0, 120, 0, 0, 0, 0, 0, 30, 30, 60, 90, 120, 150};
  17. protected Integer[] lblscale = {285, 120, 20, 340, 240, 130, 235, 30, 30, 30, 30, 30, 30, 30};
  18. protected Integer[] lblsizefont = {20, 14, 16, 14, 14, 14, 14};
  19. JTextField[] textField = new JTextField[4];
  20. protected Integer[] textFieldcoordxy = {340, 250, 135, 240, 60, 90, 120, 150};
  21. protected int widthtextField = 50;
  22. protected int heighttextField = 30;
  23. protected int textFieldsizefont = 14;
  24. public void setJButton(String textBtn[], Integer btncoordxy[], Integer btnscale[], Integer btnsizefont[], JPanel panel) {
  25. for (int i = 0; i < 2; i++) {
  26. button[i] = new JButton();
  27. button[i].setText(textBtn[i]);
  28. button[i].setBounds(btncoordxy[i], btncoordxy[i + 2], btnscale[i], btnscale[i + 2]);
  29. button[i].setFont(new Font("Segoe UI Light", Font.PLAIN, btnsizefont[i]));
  30. panel.add(button[i]);
  31. }
  32. }
  33. protected void setJLabel(String textlbl[], Integer lblcoordxy[], Integer lblscale[], Integer lblsizefont[], JPanel panel) {
  34. for (int i = 0; i < 7; i++) {
  35. label[i] = new JLabel();
  36. label[i].setText(textlbl[i]);
  37. label[i].setBounds(lblcoordxy[i], lblcoordxy[i + 7], lblscale[i], lblscale[i + 7]);
  38. label[i].setFont(new Font("Segoe UI Light", Font.PLAIN, lblsizefont[i]));
  39. panel.add(label[i]);
  40. }
  41. }
  42. protected void setJTextField(Integer textFieldcoordxy[], int widthtextField, int heighttextField, int textFieldsizefont, JPanel panel) {
  43. for (int i = 0; i < 4; i++) {
  44. textField[i] = new JTextField();
  45. textField[i].setBounds(textFieldcoordxy[i], textFieldcoordxy[i + 4], widthtextField, heighttextField);
  46. textField[i].setFont(new Font("Segoe UI Light", Font.PLAIN, textFieldsizefont));
  47. panel.add(textField[i]);
  48. }
  49. }
  50. public JPanel setPanel (JPanel panel, int x, int y, int width, int height) {
  51. panel.setBounds(x, y, width, height);
  52. panel.setLayout(null);
  53. return panel;
  54. }
  55. public void exittheMode(JButton exit, JFrame MF) {
  56. exit.addActionListener(new ActionListener() {
  57. public void actionPerformed(ActionEvent e) {
  58. dispose();
  59. MF.setVisible(true);
  60. MF.setSize(400, 310);
  61. }
  62. });
  63. }
  64. }
Полный код потомка
Листинг программы
  1. package mainPackage;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. import classPackage.classAdminFrame;
  5. public class AdminFrame extends classAdminFrame {
  6. private JPanel panel = new JPanel();
  7.  
  8. public AdminFrame() {
  9. getContentPane().setLayout(null);
  10. setPanel(panel, 10, 11, 415, 320);
  11. getContentPane().add(panel);
  12. setJButton(textBtn, btncoordxy, btnscale, btnsizefont, panel);
  13. setJLabel(textlbl, lblcoordxy, lblscale, lblsizefont, panel);
  14. setJTextField(textFieldcoordxy, widthtextField, heighttextField, textFieldsizefont, panel);
  15. exittheMode(button[1], MF);
  16. }
  17. public static void main(String[] args) {
  18. EventQueue.invokeLater(new Runnable() {
  19. public void run() {
  20. try {
  21. AdminFrame frame = new AdminFrame();
  22. frame.setVisible(true);
  23. frame.setSize(450, 310);
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. });
  29. }
  30. }

Решение задачи: «Использование графических элементов»

textual
Листинг программы
  1. package mainPackage;
  2.  
  3. import classPackage.classModeFrame;
  4.  
  5. import java.awt.*;
  6. import javax.swing.*;
  7.  
  8. public class ModeFrame extends classModeFrame {
  9.    
  10.     private JPanel panel = new JPanel();
  11.  
  12.    
  13.     public ModeFrame() {
  14.        
  15.         getContentPane().setLayout(null);
  16.         setPanel(panel, 10, 11, 415, 240);
  17.         getContentPane().add(panel);
  18.        
  19.         setLabel("chooseMode", "Select mode", 145, 0, 80, 30, 14, panel);
  20.         setJButton(textBtn, btncoordxy, btnscale, btnsizefont, panel);
  21.         gotoAdminFrame(button[0], AF);
  22.     }
  23.  
  24.     public static void main(String[] args) {
  25.         EventQueue.invokeLater(new Runnable() {
  26.             public void run() {
  27.                 try {
  28.                     ModeFrame frame = new ModeFrame();
  29.                     frame.setVisible(true);
  30.                     frame.setSize(400, 310);
  31.                 } catch (Exception e) {
  32.                     e.printStackTrace();
  33.                 }
  34.             }
  35.         });
  36.     }
  37.    
  38. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы