Как интегрировать меню в макет (Java GUI)? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь добавить меню в эту программу, но у меня проблемы с этим. Я думаю, что код для самого меню в порядке, но я не могу понять, как на самом деле вставить его в мой GUI. В этом проекте у меня 4 класса. Один для некоторых JRadioButtons, один для добавления большого текстового поля, один для меню, а затем один последний, чтобы собрать все вместе. Когда я запускаю программу без класса меню, это вывод. Вывод программы без класса меню

Вот также часть кода.

JRadioButton encrypt1 = new JRadioButton("Reverse Word" );
JRadioButton encrypt2 = new JRadioButton("+1");
ButtonGroup group1 = new ButtonGroup();

JRadioButton decrypt1 = new JRadioButton("Reverse Word");
JRadioButton decrypt2 = new JRadioButton("+1");
ButtonGroup group2 = new ButtonGroup();

public chooseEncryption(){
    setLayout(new GridLayout(3, 4));

    panel1 = new JPanel(); panel2 = new JPanel(); panel3 = new JPanel();
    panel4 = new JPanel(); panel5 = new JPanel(); panel6 = new JPanel();
    panel7 = new JPanel(); panel8 = new JPanel(); panel9 = new JPanel();
    panel10 = new JPanel(); panel11 = new JPanel(); panel12 = new JPanel();

    encryptionLabel = new JLabel("Encryption");
    decryptionLabel = new JLabel("Decryption");
    group1.add(encrypt1);
    group1.add(encrypt2);
    group2.add(decrypt1);
    group2.add(decrypt2);

    panel2.add(encryptionLabel);
    panel4.add(decryptionLabel);
    panel6.add(encrypt1);
    panel8.add(decrypt1);
    panel10.add(encrypt2);
    panel12.add(decrypt2);

    add(panel1); add(panel2); add(panel3); add(panel4); add(panel5);
    add(panel6); add(panel7); add(panel8); add(panel9); add(panel10);
    add(panel11); add(panel12);
}

Это класс переключателей, и затем я интегрирую его с помощью этого класса putTogether.

public putTogether(){ //Constructor of putTogether class
    setTitle("Encryption Program");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());

    panel = new chooseEncryption(); //object of radio button class
    panel2 = new textField(); //object of text field class


    add(panel, BorderLayout.NORTH);
    add(panel2, BorderLayout.CENTER);
    pack();
    setVisible(true);
}

И вот часть класса меню.

public class menu extends JFrame{

    public void buildMenuBar(){
        menuBar = new JMenuBar();

        buildFileMenu();
        buildEditMenu();
        buildHelpMenu();

        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        menuBar.add(helpMenu);

        setJMenuBar(menuBar);
    }

Как бы настроить меню, чтобы оно стало частью GUI. Я знаю, что это как-то связано с созданием конструктора для него, но я не смог добиться никакого прогресса. Я ценю помощь в этом!

1 Ответ

0 голосов
/ 21 апреля 2020

Используйте cardLayout. Как использовать макет карты - https://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

Надеюсь! это помогает.

...