| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:各位老大 新手请教个程序问题~ 请帮帮我啊
只看楼主 加入收藏
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
 问题点数:0 回复次数:1 
各位老大 新手请教个程序问题~ 请帮帮我啊

/* 我在网站上看到有人求一个投票记数程序,并用一个圆形显示三方得票数的大概比例,我
在图形显示上遇到了麻烦,就是程序不能刷新图形,比如按下green键,就会出现一个绿
色的圆圈,再按其他键,其他的扇形角度也不会增加,我调用repaint()方法,结果图形
闪一下就没了,书上也没这方面的例子。
另外,我想请教一下JAVA代码的书写规范,比如命名啊,代码的顺序啊,我觉得代码规范
一点,不管是自己还是别人都容易看懂一些,省了不少麻烦。
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test
{ public static void main(String[] arg)
{ JFrame f = new TFrame();
f.show();
}
}

class TFrame extends JFrame
{ public TFrame()
{ setTitle("Test");
setSize(400, 400);
addWindowListener(new WindowAdapter() // 我现在看的是《JAVA2 核心技术》这本书
{ public void windowClosing(WindowEvent e) // 书上的例子都有这段代码,不知现在
{ System.exit(0); } // 祯的关闭问题解决了没有?好象没有这段也可以正常关闭?
});
Container contentPane = getContentPane();
contentPane.add(new TPanel());
}
}

class TPanel extends JPanel
implements ActionListener
{ public TPanel()
{ gbtn = new JButton("green");
ybtn = new JButton("yellow");
rbtn = new JButton("red");
gtf = new JTextField("0", 3);
ytf = new JTextField( "0", 3);
rtf = new JTextField("0", 3);
add(gbtn);
add(ybtn);
add(rbtn);
add(gtf);
add(ytf);
add(rtf);
gtf.setEditable(false);
ytf.setEditable(false);
rtf.setEditable(false);
gbtn.addActionListener(this);
ybtn.addActionListener(this);
rbtn.addActionListener(this);
}

public void actionPerformed(ActionEvent evt)
{ Object source = evt.getSource();// 这里也不太懂,为什么是evt.getSource()?这句我是照书抄的。
int g = Integer.parseInt(gtf.getText());
int y = Integer.parseInt(ytf.getText());
int r = Integer.parseInt(rtf.getText());
Graphics h = getGraphics();
if (source == gbtn)
{ ++g; gtf.setText("" + g); } // 计算各按钮点击次数。
else if (source == ybtn)
{ ++y; ytf.setText("" + y); }
else if (source == rbtn)
{ ++r; rtf.setText("" + r); }
int gAngle = 360 * g / (g + y + r); // 算出各扇形部分的角度。
int yAngle = 360 * y / (g + y + r);
int rAngle = 360 * r / (g + y + r);

h.setColor(Color.green); // 画出绿色扇形部分。
h.fillArc(100, 120, 200, 200, 0, gAngle);
h.setColor(Color.yellow); // 画出黄色扇型部分。
h.fillArc(100, 120, 200, 200, gAngle, yAngle);
h.setColor(Color.red); // 画出红色扇型部分。
h.fillArc(100, 120, 200, 200, gAngle + yAngle, rAngle);
h.dispose(); // 这句书上说不是在paintComponent()方法下画图一定要调用,我用了但不知道为什么。释放h的占用 内 存??
}
private JButton gbtn;
private JButton ybtn;
private JButton rbtn;
private JTextField gtf;
private JTextField ytf;
private JTextField rtf;
}

[此贴子已经被作者于2005-12-2 11:27:45编辑过]

搜索更多相关主题的帖子: 老大 
2005-12-01 17:40
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
自己顶上去~

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2005-12-02 10:33
快速回复:各位老大 新手请教个程序问题~ 请帮帮我啊
数据加载中...
 
   



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

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