Может кто-нибудь объяснить, почему ничего не отображается внутри окна приложения, когда я запускаю это?Базовый калькулятор JFrame
Кажется странным, у меня было это отображение JButton
, и я доложил еще пару, а затем, похоже, повлияло на все.
Вот мой код:
public class Window extends JFrame {
JButton zero, one, two, three, four, five, six, seven, eight, nine;
JButton add, sub, mul, div, mod;
JPanel mainPanel;
JLabel results;
public Window(){
this.setSize(400, 400);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Calculator");
this.setVisible(true);
mainPanel = new JPanel();
results = new JLabel("RESULTS");
results.setToolTipText("Calculated Results");
zero = new JButton("0");
one = new JButton("1");
two = new JButton("2");
three = new JButton("3");
four = new JButton("4");
five = new JButton("5");
six = new JButton("6");
seven = new JButton("7");
eight = new JButton("8");
nine = new JButton("9");
add = new JButton("+");
sub = new JButton("-");
mul = new JButton("*");
div = new JButton("/");
mod = new JButton("%");
this.add(mainPanel);
mainPanel.add(zero);
mainPanel.add(one);
mainPanel.add(two);
mainPanel.add(three);
mainPanel.add(four);
mainPanel.add(five);
mainPanel.add(six);
mainPanel.add(seven);
mainPanel.add(eight);
mainPanel.add(nine);
mainPanel.add(add);
mainPanel.add(sub);
mainPanel.add(mul);
mainPanel.add(div);
mainPanel.add(mod);
mainPanel.add(results);
}
public static void main(String[] args) {
new Window();
}
}
Я бы попытался добавить макет к вашей mainPanel и переместить 'setVisible (true);' в конец конструктора. –
Создание графического интерфейса на основной теме не рекомендуется. Используйте SwingUtilities.invokeLater(); с экземпляром Runnable. – Doc
@ shivam7357 Это [не совсем верно] (http://stackoverflow.com/questions/7156949/main-thread-vs-ui-thread-in-java). – Tomas