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

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

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

Решил сделать набросок графических элементов при помощи массивов. Сделал. Нужно было обращаться к кнопкам. Сделал для одной кнопки в родителе.
    public void exittheMode(JButton exit, JFrame MF) {
        exit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
                MF.setVisible(true);
                MF.setSize(400, 310);
            }
        }); 
    }
Полный код родителя
package classPackage;
 
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.*;
import mainPackage.*;
 
public class classAdminFrame extends JFrame {
    
    protected ModeFrame MF = new ModeFrame();
 
    protected JButton[] button = new JButton [2];
    protected String[] textBtn = {"Расcчитать и отправить стоимость тура", "Выйти из режима"};
    protected Integer[] btncoordxy = {0, 270, 200, 200};
    protected Integer[] btnscale = {255, 140, 30, 30};
    protected Integer[] btnsizefont = {13, 13};
    
    JLabel[] label = new JLabel[7];
    protected String[] textlbl = {"Расчёт стоимости тура", "Заявка есть? -", "", "Стоимость проживания одного туриста за одну ночь -", "Стоимость перевозки туда и обратно -", "Стоимость питания -", "Маржинальный доход (в процентах) -"};
    protected Integer[] lblcoordxy = {110, 0, 120, 0, 0, 0, 0, 0, 30, 30, 60, 90, 120, 150};
    protected Integer[] lblscale = {285, 120, 20, 340, 240, 130, 235, 30, 30, 30, 30, 30, 30, 30};
    protected Integer[] lblsizefont = {20, 14, 16, 14, 14, 14, 14};
    
    JTextField[] textField = new JTextField[4];
    protected Integer[] textFieldcoordxy = {340, 250, 135, 240, 60, 90, 120, 150};
    protected int widthtextField = 50;
    protected int heighttextField = 30;
    protected int textFieldsizefont = 14;
    
    public void setJButton(String textBtn[], Integer btncoordxy[], Integer btnscale[], Integer btnsizefont[], JPanel panel) {
        for (int i = 0; i < 2; i++) {
            button[i] = new JButton();
            button[i].setText(textBtn[i]);
            button[i].setBounds(btncoordxy[i], btncoordxy[i + 2], btnscale[i], btnscale[i + 2]);
            button[i].setFont(new Font("Segoe UI Light", Font.PLAIN, btnsizefont[i]));
            panel.add(button[i]);
        }
    }
    
    protected void setJLabel(String textlbl[], Integer lblcoordxy[], Integer lblscale[], Integer lblsizefont[], JPanel panel) {
        for (int i = 0; i < 7; i++) {
            label[i] = new JLabel();
            label[i].setText(textlbl[i]);
            label[i].setBounds(lblcoordxy[i], lblcoordxy[i + 7], lblscale[i], lblscale[i + 7]);
            label[i].setFont(new Font("Segoe UI Light", Font.PLAIN, lblsizefont[i]));
            panel.add(label[i]);
        }
    }
    
    protected void setJTextField(Integer textFieldcoordxy[], int widthtextField, int heighttextField, int textFieldsizefont, JPanel panel) {
        for (int i = 0; i < 4; i++) {
            textField[i] = new JTextField();
            textField[i].setBounds(textFieldcoordxy[i], textFieldcoordxy[i + 4], widthtextField, heighttextField);
            textField[i].setFont(new Font("Segoe UI Light", Font.PLAIN, textFieldsizefont));
            panel.add(textField[i]);
        }
    }
    
    public JPanel setPanel (JPanel panel, int x, int y, int width, int height) {
        panel.setBounds(x, y, width, height);
        panel.setLayout(null);
        return panel;
    }
    
    public void exittheMode(JButton exit, JFrame MF) {
        exit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
                MF.setVisible(true);
                MF.setSize(400, 310);
            }
        }); 
    }
}
Полный код потомка
package mainPackage;
 
import java.awt.*;
import javax.swing.*;
 
import classPackage.classAdminFrame;
 
public class AdminFrame extends classAdminFrame {
 
    private JPanel panel = new JPanel();

    public AdminFrame() {
        getContentPane().setLayout(null);
        setPanel(panel, 10, 11, 415, 320);
        getContentPane().add(panel);
 
        setJButton(textBtn, btncoordxy, btnscale, btnsizefont, panel);
        setJLabel(textlbl, lblcoordxy, lblscale, lblsizefont, panel);
        setJTextField(textFieldcoordxy, widthtextField, heighttextField, textFieldsizefont, panel);
        exittheMode(button[1], MF);
    }
    
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    AdminFrame frame = new AdminFrame();
                    frame.setVisible(true);
                    frame.setSize(450, 310);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

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

textual
Листинг программы
package mainPackage;
 
import classPackage.classModeFrame;
 
import java.awt.*;
import javax.swing.*;
 
public class ModeFrame extends classModeFrame {
    
    private JPanel panel = new JPanel();
 
    
    public ModeFrame() {
        
        getContentPane().setLayout(null);
        setPanel(panel, 10, 11, 415, 240);
        getContentPane().add(panel);
        
        setLabel("chooseMode", "Select mode", 145, 0, 80, 30, 14, panel);
        setJButton(textBtn, btncoordxy, btnscale, btnsizefont, panel);
        gotoAdminFrame(button[0], AF); 
    }
 
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ModeFrame frame = new ModeFrame();
                    frame.setVisible(true);
                    frame.setSize(400, 310);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
}

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


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

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

14   голосов , оценка 3.929 из 5
Похожие ответы