import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public  class panel extends JDialog 
{
  
  Panel panel1 = new Panel();
  Panel panel2 = new Panel();
  JButton jb1=new JButton("1");
  JButton jb2=new JButton("2");
  JButton jb3=new JButton("3");
  JButton jb4=new JButton("4");
  JButton jb5=new JButton("5");
  JButton jb6=new JButton("6");
  JButton jb7=new JButton("7");
  JButton jb8=new JButton("8");
  JButton jb9=new JButton("9");
  public panel(){};
  public panel(Frame frame, String title) 
  {
        super(frame,title);
    try
    {
    panel1.setLayout(new GridLayout(2,1));
    panel2.setLayout(new GridLayout(3,3));    
    Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
    getContentPane().add(panel1,BorderLayout.NORTH);
    getContentPane().add(panel2,BorderLayout.SOUTH);
    panel2.add(jb1);
    panel2.add(jb2);
    panel2.add(jb3);
    panel2.add(jb4);
    panel2.add(jb5);
    panel2.add(jb6);
    panel2.add(jb7);
    panel2.add(jb8);
    panel2.add(jb9);
    setSize(300,300);
    this.setResizable(false);
    this.setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);
    setVisible(true);
    }
    catch(Exception ex) 
    {
      ex.printStackTrace();
    }
  }
  public static void main(String[] args)
  {
      panel p=new panel();
  }}
程序没错,为什么运行却不显示呀?还有就是。谁能给我写个小程序,就是一个JFrame里有三个panel,一个在最上面,里面放的是一个JTextField,下面剩下的部分放两个,总的来讲就像个计算器的排版,下面放两个panel,左边的里面格式是GridLayout(3,3),用来放1~9数字键的。就这样就行了,谁可以帮我这个忙,谢谢了

解决方案 »

  1.   


    panel p = new panel(new Frame(), "hello");//这样实例化!
    你就根本没调用用参数的构造方法!
      

  2.   

    写的多构造方法~却用了没用的构造方法~public panel(){}; 一般建议写、但不一定就用它。
      

  3.   

      Panel p1=nwe Panel();
      TextField text=new TextField(46);
      p1.add(text)
      Panel p2=new Panel();
     p1.setLayout(new GriderLayout(3,3)); 
     for(int i=1;i<=9;i++){
    p1.add(new Button("第"+i+"个按钮"));
     }
    我这里连一个编辑器都没有安装,写代码也不能调试
    没办法兄弟,就给你写着两句
    你可以插到你的程序中去
    希望可以帮助你一点
      

  4.   

    main函数里new对象是调用的构造函数是无参的构造函数,程序怎么可能去执行有参的构造函数呢>.<
      

  5.   

    可以这样写,就可以运行了。
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    public  class panel extends JDialog  

       
      Panel panel1 = new Panel(); 
      Panel panel2 = new Panel(); 
      JButton jb1=new JButton("1"); 
      JButton jb2=new JButton("2"); 
      JButton jb3=new JButton("3"); 
      JButton jb4=new JButton("4"); 
      JButton jb5=new JButton("5"); 
      JButton jb6=new JButton("6"); 
      JButton jb7=new JButton("7"); 
      JButton jb8=new JButton("8"); 
      JButton jb9=new JButton("9"); 
      
      public panel()  
      { 
           
        try 
        { 
        panel1.setLayout(new GridLayout(2,1)); 
        panel2.setLayout(new GridLayout(3,3));     
        Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize(); 
        getContentPane().add(panel1,BorderLayout.NORTH); 
        getContentPane().add(panel2,BorderLayout.SOUTH); 
        panel2.add(jb1); 
        panel2.add(jb2); 
        panel2.add(jb3); 
        panel2.add(jb4); 
        panel2.add(jb5); 
        panel2.add(jb6); 
        panel2.add(jb7); 
        panel2.add(jb8); 
        panel2.add(jb9); 
        setSize(300,300); 
        this.setResizable(false); 
        this.setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2); 
        setVisible(true); 
        } 
        catch(Exception ex)  
        { 
          ex.printStackTrace(); 
        } 
      } 
      public static void main(String[] args) 
      { 
          panel p=new panel(); 
      } } 
      

  6.   

    用jbuider软件很容易就可以实现你想要的布局了,
      

  7.   

    import java.awt.*;

    public class Calculater extends Frame
    {
    private Panel panel;
    private Label label;

    private String names[]={"7","8","9","+","4","5","6","-","1","2","3","*","0",".","=","/"};

    private Button[] buttons=new Button[16];

    public Calculater(String title){
    super(title);
    label=new Label();
    panel=new Panel();

    panel.setLayout(new GridLayout(4,4));
    add(label,BorderLayout.NORTH);
    add(panel,BorderLayout.CENTER);

    for(int i=0;i<buttons.length;i++)
    {
    buttons[i]=new Button(names[i]);
    panel.add(buttons[i]);
    }
    pack();
    setVisible(true);
    }
    public static void main(String args[]){
    new Calculater("Calculater");
    }

    }
      

  8.   

    两个改法,一是用一楼的调用带参的构造函数
    panel p = new panel(new Frame(), "hello");//这样实例化! 要就就改下你这个不带参的构造函数
    public panel(){
        this(new Frame(), "hello");
    };