Создать кнопку в JFrame, используя метод createButton - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть два метода: createGui и createButton.Я вызвал метод createGui в методе main. GUI создан.

Теперь я хочу добавить другие компоненты, такие как JButton в JFrame, используя createButton метод в createGui метод

Какдобавить кнопку во фрейм, вызвав метод createButton?

public class JavaGui {

    public static void main(String[] args){
        CreateGui.createGui();
    }
}

class CreateGui{

    static GraphicsConfiguration gc;

    public static void createGui(){
        JFrame frame= new JFrame(gc);   
        frame.setTitle("gui");
        frame.setSize(600, 400);
        frame.setLocation(200, 200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
    }

    public static void createButton(){
        JButton button=new JButton();
    }
}

Ответы [ 3 ]

0 голосов
/ 24 февраля 2019

Короче говоря:

frame.getContentPane().add(myBytton);

После этого вам нужно прочитать о менеджерах компоновки.

0 голосов
/ 24 февраля 2019

Я думаю, что есть несколько вещей, которые вы можете улучшить в своем коде.

  • В объектно-ориентированном программировании лучше использовать существительные в качестве имен классов.Итак, CreateGui не является хорошим именем класса.
  • В объектно-ориентированном программировании постарайтесь свести к минимуму использование static.
  • Вам действительно нужны 2 метода createGui() и createButton()?Я думаю, что вы можете сделать это с помощью одного метода createGui().

С учетом вышеприведенных пунктов, в приведенном ниже примере кода показано, как вы можете создать простой пользовательский интерфейс, подобный этому.

import javax.swing.*;
import java.awt.BorderLayout;

public class JavaGui {
  public static void main(String[] args) {
    JFrame gui = createGui();
    gui.setVisible(true);
  }

  private static JFrame createGui() {
    JFrame frame= new JFrame();
    frame.setTitle("gui");
    frame.setSize(600, 400);
    frame.setLocation(200, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);

    frame.getContentPane().add(new JScrollPane(new JTextArea()), BorderLayout.CENTER);
    frame.getContentPane().add(new JButton("Button"), BorderLayout.SOUTH);

    return frame;
  }
}
0 голосов
/ 24 февраля 2019

У вас должен быть класс, расширяющий Java-класс JFrame, а затем вы можете легко добавить к нему другие компоненты (т. Е. CreateGui расширяет JFrame, а затем добавить к нему JPanel и затем добавить компоненты).То, как ты это сделал, выглядит сложнее, чем должно быть.

...