我做一个演示插补法的程序,框架里有两个面板,左面板用于绘图,右面板用于采集输入,问题有:
1,运行程序后界面上什么都没有,最大化一次后里面的组件才出来,对话框走哪儿哪儿就没了
?
2,点击菜单弹出对话框后,左面板被破坏,好像露出了背景色?
3,点击“确定”按钮后绘图开始,可是左面板图没出来却把右面板所有东西复制过去了,实在不解哪里出了问题?
(重点问题)
部分代码:.....
//面板添加
Caidan dan=new Caidan();
setJMenuBar(dan);
dangliang=new Dangliang(this,"设置当量",false);
shijian=new Shijian(this,"间隔时间",false);
guanyu=new Guanyu(this,"关于我们",false);
shuru=new Shuru(this);
jisuan=new Jisuan(shuru);
huabu=new Huitu ();
huabu.jiji=jisuan;
content.setLayout(new GridLayout(1,2,5,0));
content.add(huabu);
content.add(shuru);
.......
//事件处理
if(evt.getSource()==shuru.b){
jisuan.main();
huabu.huan();
huabu.repaint();
}
.......
//左面板 类
class Huitu extends JPanel{
int[][] z;
int N;
Jisuan jiji;
public Huitu(){
super();
z=new int[60][2];
}
public void huan(){
for(int i=0;i<=59;i++){
this.z[i][0]=jiji.a[i][0];
this.z[i][1]=jiji.a[i][1];
}
}
@Override
public void paint(Graphics comp){
Graphics comp2D=(Graphics2D)comp .create();
comp2D.setColor(Color.red);
comp2D.drawLine(50*z[0][0], 50*z[0][1], 50*z[N][0], 50*z[N][1]);
for(int i=0;i<=N-1;i++){
comp2D.drawLine(50*z[i][0],50*z[i][1],50*z[i+1][0],50*z[i+1][1]);
}
}
}