2012-01-13 71 views
0

我創建了一個JFrame,它創建了一個擴展JFrame類的類(Display.java)。在那個類中,我創建了一個JPanel對象。JButton顯示問題

class Display extends JFrame { 
     JPanel jp= new JPanel(); 

並在如下所示的我通過使用參考類Display添加JButton s至該JPanel另一個類(TestBroadCastNode.java):

class TestBroadCastNode { 

    Display disp; 
    Graphics g =disp.getGraphics(); 
    JButton bt = new JButton("One"); 
    disp.jp.add(bt); 
} 

現在我不能夠顯示的按鈕。幫助我....如果你想我可以給你發送完整的文件。

+0

很難說沒有看到所有的代碼。一種可能性是您沒有將JPanel添加到Display類中的JFrame中。如果是,請嘗試通過將其更改爲新的JPanel(新的BorderLayout())來在面板上設置佈局,然後在添加按鈕時使用jp.add(bt,BorderLayout.CENTER)。如果這些都沒有幫助,你可以嘗試發佈更多的代碼。 – 2012-01-13 19:31:02

回答

1

我試圖儘可能地匹配你的代碼,但既然你只給了有限的片段,我不得不作出一些假設。但下面的代碼顯示的按鈕就好了:

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 

public class TestClass { 

    public static class Display extends JFrame { 
    public JPanel panel = new JPanel(); 

    public Display(){ 
     super("TestFrame"); 
     getContentPane().add(panel); 
    } 
    } 

    public static class TestBroadCastNode{ 
    Display display; 

    public TestBroadCastNode(Display aDisplay) { 
     display = aDisplay; 
     display.panel.add(new JButton("One")); 
    } 
    } 

    public static void main(String[] args) throws Exception { 
    SwingUtilities.invokeLater(new Runnable() { 

     public void run() { 
     Display display = new Display(); 
     display.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     new TestBroadCastNode(display); 

     display.pack(); 
     display.setVisible(true); 
     } 
    }); 
    } 
}