永发信息网

java:画图问题

答案:1  悬赏:80  手机版
解决时间 2021-06-03 22:27

我想写个计算器:思路是,在一个窗口北面添加文本区,南面添加一个面板:panel,然后在这个面板里面添加两个面板panel_1,panel_2,这个两个面板的布局是GridLayout(5,2),然后在这个两个面板里面分别添加10个按钮。

上面是运行结构。

我想要的结构是:左边的按钮占满了panel_1,右边的按钮占满了panel_2

下面是代码:

import java.awt.*;
import java.awt.event.*;
class MyComputer extends Frame {
TextField text;
Panel panel_1,panel_2;
Button button[]=null;
Button _button[]=null;
MyComputer(String name){
super(name);
setBounds(10,10,500,400);
setLayout(new BorderLayout());
text=new TextField(100);
Panel panel=new Panel();
Panel panel_1=new Panel();
Panel panel_2=new Panel();
add(text,BorderLayout.NORTH);
//text.setBounds(0,0,500,50);
add(panel,BorderLayout.SOUTH);
//panel.setBounds(110,0,500,280);

panel.setLayout(new BorderLayout());
panel.add(panel_1,BorderLayout.WEST);
panel.add(panel_2,BorderLayout.EAST);

panel_1.setBounds(101,0,240,300);
panel_2.setBounds(101,0,240,300);
panel_1.setLayout(new GridLayout(5,2));//
panel_2.setLayout(new GridLayout(5,2));
button=new Button[10];
for(int i=0;i<=9;i++)//通过循环来构造10个数字按钮
{
button[i]=new Button(""+i);//将一个数字转换为字符型
//button[i].setSize((int)panel_1.getWidth()/5,(int)panel.getHeight()/2);
panel_1.add(button[i]);
}
//enum calculate_simbol{b}a;
String ch[]=new String[10];
ch[0]="=";
ch[1]="+";
ch[2]="-";
ch[3]="*";
ch[4]="/";
ch[5]="sqrt";
ch[6]="sin";
ch[7]="cos";
ch[8]="tan";
ch[9]="cot";
_button=new Button[10];
for(int j=0;j<10;j++)//*********这里如果是j<9就会有一个指针指向一个空的对象。就会产生空指针的异常************
{

_button[j]=new Button(ch[j]);
//_button[j].setSize((int)panel_2.getWidth()/5,(int)panel_2.getHeight()/2);
panel_2.add(_button[j]);
}
for(int k=0;k<10;k++)
{
button[k].addActionListener(new Monitor());
_button[k].addActionListener(new Monitor());
}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});
setVisible(true);
panel_1.setVisible(true);
panel_2.setVisible(true);
validate();
}

}
class Monitor implements ActionListener{
public void actionPerformed(ActionEvent e){

}
}
public class TestComputer {
public static void main(String args[]){
MyComputer mc=new MyComputer("我的计算机器");
}
}

最佳答案
panel使用GridLayout, 主窗口使用GridBagLayout。
具体的用法请看API帮助文档。
代码我就不发给你了,我想你能够根据思路并通过查阅文档解决这个问题的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三星i458性能怎样.价格多少...
为什么我的QQ有登陆保护。还被人家上了!
怎么样才能得到大还丹?
跪求魔兽世界BL到辛特兰的路线
永定区张家界正宗津市牛肉粉面这个地址在什么
真有一种不惜一切的爱情吗?!?!
帮我猜个谜语,打一字。
影子系统可以防盗号木马么?
为什么安装卫星电视是违法的?这是为什么?
ABCE是某儿童乐园的建筑,现在要在它两旁安放
我怎么发现我以前爱的那个女生,我没什么感觉
充一个月qq会员有什么好处
邵阳县邵阳九公桥综合市场我想知道这个在什么
汽车发电机后面为什么有的两根细线一根粗线
DNF巨剑红眼时装属性加法
推荐资讯
自锁矫正器很难看吗
长沙哪些地方好玩,除了烈士公园,南郊公园,橘
魔兽世界国服什么时候更新巫妖王
qq三国活动代码怎样获得
請PS的高手幫忙做張動態圖
孕妇分娩可以喝红牛吗?
东海商厦停车场怎么去啊,有知道地址的么
我想问社会保险局星期六 、日上班吗?
我怎么知道有没有人用我的CSOL账号开过挂?
谁有xp系统黑色的主题呀
2009年11月1日nba制造放的什么歌?
为什么有的人感情那么容易变,而有的人就能坚
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?