Swing 按钮显示问题

Swing 按钮显示问题,swing,jframe,jbutton,Swing,Jframe,Jbutton,我通过创建一个扩展JFrame类的类(Display.java),创建了一个JFrame。在这个类中,我创建了一个JPanel对象 class Display extends JFrame { JPanel jp= new JPanel(); 在另一个类(TestBroadCastNode.java)中,我通过引用类Display将JButtons添加到JPanel,如下所示: class TestBroadCastNode { Display disp; G

我通过创建一个扩展
JFrame
类的类(
Display.java
),创建了一个
JFrame
。在这个类中,我创建了一个
JPanel
对象

class Display extends JFrame {
        JPanel jp= new JPanel();
在另一个类(
TestBroadCastNode.java
)中,我通过引用类
Display
JButton
s添加到
JPanel
,如下所示:

class TestBroadCastNode {

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

现在我无法显示按钮。帮助我。。。。如果你愿意,我可以把完整的文件寄给你

我试图尽可能地匹配您的代码,但由于您只提供了有限的代码片段,因此我不得不做出一些假设。但是下面的代码显示的按钮很好:

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 );
      }
    } );
  }
}

如果看不到所有的代码,很难判断。一种可能是您没有将JPanel添加到Display类中的JFrame中。如果是,请尝试将面板上的布局更改为new JPanel(new BorderLayout()),然后在添加按钮时,使用jp.add(bt,BorderLayout.CENTER)。如果这两种方法都不管用,您可以尝试发布更多的代码。