2014-12-03 3 views
-1

Я использую книгу для изучения Java. Я сделал окно Swing, но когда я пытаюсь сделать JButtons, они не видны во время выполнения. Я скопировал код точно так, как есть, но он все еще не отображается. Вот код:JButton добавлен, но не отображается во время выполнения

import javax.swing.*; 
class Buttons extends JFrame 
{ 
    JPanel pnl = new JPanel(); 
    public Buttons() 
    { 
     super("Swing Window"); 
     setSize(500,200); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     add(pnl); 
     setVisible(true); 
     pnl.add(new JButton("Click Me")); 
    } 
    public static void main(String[] args) 
    { 
     Window gui = new Window(); 
    } 
} 
+1

* «Я использую книгу, чтобы узнать Java.» * Если выше, что код является результатом, я не думаю, что это очень хорошая книга .. BTW - The ' main (String []) 'обычно создает экземпляр класса, в котором он находится. Этот, я бы ожидал, больше похож на« Кнопки gui = new Buttons(); gui.setVisible (true); '.. –

+0

Книга действительно заставляет нас изучать Java, используя, вроде, головоломки. Например: 'class HelloWorld {public static void main (String [] args) {}}' Затем он сообщает нам вставить этот код между основными скобками метода: 'System.out.println («Привет»)' –

ответ

-1

Изменение окна к кнопкам и она отлично работает !!!

import javax.swing.*;  

class Buttons extends JFrame 
{ 
JPanel pnl = new JPanel(); 
public Buttons() 
{ 
    super("Swing Window"); 
    setSize(500,200); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    add(pnl); 
    setVisible(true); 
    pnl.add(new JButton("Click Me")); 
} 
public static void main(String[] args) 
{ 
    Buttons gui = new Buttons(); 
} 

}

+0

Спасибо, это действительно сработало. –

5

Изменение:

setVisible(true); 
    pnl.add(new JButton("Click Me")); 

To:

pnl.add(new JButton("Click Me")); 
    pack(); // very important! 
    setVisible(true); // should be last! 
+0

Спасибо но немного сложнее для меня (12 лет). –

Смежные вопросы