| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:[求助]请教~朋友写的,我改出出来哪错了
只看楼主 加入收藏
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
 问题点数:0 回复次数:3 
[求助]请教~朋友写的,我改出出来哪错了

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class Fonts extends JFrame implements ActionListener{
JButton b1,b2,b3;
Container c;
JPanel p;
int count=0;

public Fonts (){
b1=new JButton("三角形");
b2=new JButton("矩形");
b3=new JButton("椭圆形");
p=new JPanel();

p.add(b1);
p.add(b2);
p.add(b3);

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);

c=getContentPane();
c.add("North",p);

this.setSize(400,350);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e){

if(e.getSource()==b1){
c.add(new Fonts1());
c.validate();
}else if(e.getSource()==b2){
c.add(new Fonts2());
c.validate();
}else{
c.add(new Fonts3());
c.validate();
}
count++;
if(count>9)
count=1;
}

public static void main(String[] args){
new Fonts();
}

class Fonts1 extends JPanel{
int a,b,c,d,width,heigh;
public void paintComponent(Graphics g){
switch(count){
case 1: a=this.getSize().width/6;
b=0;
c=0;
d=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=d;
break;
case 2: a=this.getSize().width/2;
b=0;
c=this.getSize().width/3;
d=(this.getSize().height)/3;
width=c*2;
heigh=d;
break;
case 3: a=this.getSize().width/6*5;
b=0;
c=this.getSize().width/3*2;
d=(this.getSize().height)/3;
width=this.getSize().width;
heigh=d;
break;
case 4: a=this.getSize().width/6;
b=(this.getSize().height)/3;
c=0;
d=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=d;
break;
case 5: a=this.getSize().width/2;
b=(this.getSize().height)/3;
c=this.getSize().width/3;
d=(this.getSize().height)/3*2;
width=this.getSize().width/3*2;
heigh=d;
break;
case 6: a=this.getSize().width/6*5;
b=(this.getSize().height)/3;
c=this.getSize().width/3*2;
d=(this.getSize().height)/3*2;
width=this.getSize().width;
heigh=d;
break;
case 7: a=this.getSize().width/6;
b=(this.getSize().height)/3*2;
c=0;
d=(this.getSize().height);
width=this.getSize().width/3;
heigh=d;
break;
case 8: a=this.getSize().width/2;
b=(this.getSize().height)/3*2;
c=this.getSize().width/3;
d=(this.getSize().height);
width=this.getSize().width/3*2;
heigh=d;
break;
default:a=this.getSize().width/6*5;
b=(this.getSize().height)/3*2;
c=this.getSize().width/3*2;
d=(this.getSize().height);
width=this.getSize().width;
heigh=d;
}
Polygon p=new Polygon();
p.addPoint(a,b);
p.addPoint(c,d);
p.addPoint(width,heigh);
g.setColor(Color.yellow);
g.fillPolygon(p);
}
}

class Fonts2 extends JPanel{
int a,b,width,heigh;
public void paintComponent(Graphics g){
switch(count){
case 1: a=0;
b=0;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 2: a=this.getSize().width/3;
b=0;
width=a;
heigh=(this.getSize().height)/3;
break;
case 3: a=this.getSize().width/3*2;
b=0;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 4: a=0;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=b;
break;
case 5: a=this.getSize().width/3;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=b;
break;
case 6: a=this.getSize().width/3*2;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 7: a=0;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 8: a=this.getSize().width/3;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
default:a=this.getSize().width/3*2;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
}

g.setColor(Color.blue);
g.fillRect(a,b,width,heigh);
System.out.println(width);

}
}

class Fonts3 extends JPanel{
int a,b,width,heigh;
public void paintComponent(Graphics g){
switch(count){
case 1: a=0;
b=0;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 2: a=this.getSize().width/3;
b=0;
width=a;
heigh=(this.getSize().height)/3;
break;
case 3: a=this.getSize().width/3*2;
b=0;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 4: a=0;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=b;
break;
case 5: a=this.getSize().width/3;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=b;
break;
case 6: a=this.getSize().width/3*2;
b=(this.getSize().height)/3;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 7: a=0;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
case 8: a=this.getSize().width/3;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
break;
default:a=this.getSize().width/3*2;
b=(this.getSize().height)/3*2;
width=this.getSize().width/3;
heigh=(this.getSize().height)/3;
}
g.setColor(Color.red);
g.fillOval(a,b,width,heigh);
}
}
}
看看还有什么更好的方法来写

搜索更多相关主题的帖子: 朋友 
2006-04-11 22:35
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你的程序能运行啊,
你应该把放那些形状的面板改成一个专门的面板,它可以继承自JPanel
这样的话,就不会出现你这种情况了。

可惜不是你,陪我到最后
2006-04-12 10:19
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
谢谢啊 可专门改成一个面板后 按钮是不会乱飞了 就是下面的图形会乱飞了 哎 不知道咋么搞了

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-04-12 18:47
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

设其位置 
setBounds()


可惜不是你,陪我到最后
2006-04-12 19:26
快速回复:[求助]请教~朋友写的,我改出出来哪错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved