XiaoHui.Net 笑汇程序员论坛Java 讨论区

   怎么直排按钮?


页: [1]

tanglei22332009-10-21 16:42
怎么直排按钮?

做一个计算器的程序,像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);
        }
}



查看完整版本: 怎么直排按钮?