Java图形界面的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 08:53:23
import javax.swing.*;
import java.awt.*;
public class JPanelDemo extends JFrame{
private JPanel DIsplayPanel;
private JPanel InputPanel;
private Container container;
private JTextField tfResult;
private static final String Lables="789*456/123-0C=+";
public JPanelDemo(){
super("计算器");
setSize(200,230);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void setLayout(){
container=getContentPane();
container.setLayout(new BorderLayout());
DisplayPanel=new JPanel();
DisplayPanel.setLayout(new BorderLayout());
tfResult=new JTextField();
DisplayPanel.add(tfResult,BorderLayout.CENTER);
container.add(DisplayPanel,BorderLayout.NORTH);
InputPanel.setLayout(new GridLayout(4,4));
for(int i=0;i<Lables.length();i++){
JButton btn=new JButton(Lables.substring(i,i+

定义的时候你写的是:private JPanel DIsplayPanel;
而用的是:DisplayPanel
统一一下就能编译了.但是InputPanel没有初始化,运行时会发生错误.
把这句:
InputPanel =new JPanel();
加在:
InputPanel.setLayout(new GridLayout(4,4));
之前就可以了.
全部程序像这样:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;

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

class JPanelDemo extends JFrame {
private JPanel DIsplayPanel;

private JPanel InputPanel;

private Container container;

private JTextField tfResult;

private static final String Lables = "789*456/123-0C=+";

public JPanelDemo() {

super("计算器");
setSize(200, 230);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void setLayout() {
container = getCont