怎么直排按钮?
做一个计算器的程序,像windows自带的计算器,可是我怎么布局都不行,请教下怎么布局?还有我的编程是不是太乱了,可以简化么?代码如下:
import javax.swing.*;
import java.awt.*;
/**
* 计数器程序
* @author 唐磊
*/
public class Calculator {
/**
* @param 主函数
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CalculatorFrame calculator=new CalculatorFrame();
}
}
/**
* frame design
*/
class CalculatorFrame extends JFrame{
public CalculatorFrame(){
super("计算器");
this.setSize(WIDTH, HEIGHT);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(80,80);
Toolkit kit=Toolkit.getDefaultToolkit();
Image image=kit.getImage("logoo.jpg");
this.setIconImage(image);
this.setResizable(false);
Container con=this.getContentPane();
con.setLayout(new BorderLayout());
SouthFrame aSouth_Frame=new SouthFrame();
con.add(aSouth_Frame,BorderLayout.NORTH);
con.add(new MainFrame(),BorderLayout.CENTER);
this.setVisible(true);
}
public static final int WIDTH=300;
public static final int HEIGHT=300;
}
class SouthFrame extends JPanel{
public SouthFrame(){
text=new JTextField(25);
this.add(text);
}
public String getText(){
return text.getText();
}
public void setText(String str){
text.setText(str);
}
private JTextField text;
}
class NumberFrame extends JPanel{
public NumberFrame(){
numbutton=new JButton[20];
String str[]={"+","-","*","/","=",".","Sqrt","%","1/x","+/-"};
for(int i=0;i<10;i++){
numbutton[i]=new JButton(i+"");
this.add(numbutton[i]);
}
for(int j=10;j<20;j++){
numbutton[j]=new JButton(str[j-10]);
this.add(numbutton[j]);
}
}
private JButton[] numbutton;
}
class ActionFrame extends JPanel{
public ActionFrame(){
String str[]={"Backscape","CE","C"};
actionButton=new JButton[3];
for(int i=0;i<3;i++){
actionButton[i]=new JButton(str[i]);
this.add(actionButton[i]);
}
}
private JButton[] actionButton;
}
class SideAction_button extends JPanel{
public SideAction_button(){
String str[]={"MC","MR","MS","M+"};
sideButton=new JButton[4];
for(int i=0;i<4;i++){
sideButton[i]=new JButton(str[i]);
this.add(sideButton[i]);
}
}
private JButton[] sideButton;
}
class MainFrame extends JPanel{
public MainFrame(){
this.setLayout(new BorderLayout());
this.add(new SideAction_button(),BorderLayout.WEST);
this.add(new ActionFrame(),BorderLayout.NORTH);
this.add(new NumberFrame(),BorderLayout.CENTER);
}
} |