java gui 事件监听的例子 感觉不对 请大家帮忙看看

就是用eclipse点击run以后,直接出现gradient的内容,而D点击按钮以后没有变化importjavax.swing.*;importjava.awt.*;im... 就是用eclipse点击run以后,直接出现gradient的内容,而D点击按钮以后没有变化
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleGui3C extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;
JFrame frame;

public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleGui3C gui = new SimpleGui3C();
gui.go();
}

public void go() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton button = new JButton("change colours");
button.addActionListener(this);

MyDrawPanel drawPanel = new MyDrawPanel();

frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.getContentPane().add(BorderLayout.CENTER, drawPanel);

frame.setSize(300, 300);
frame.setVisible(true);
}

public void actionPerformed(ActionEvent event) {
frame.repaint();
}
}

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JPanel;

public class MyDrawPanel extends JPanel {
private static final long serialVersionUID = 1L;

public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
GradientPaint gradient = new GradientPaint(50, 50, Color.blue, 150,
150, Color.orange);
g2d.setPaint(gradient);
g2d.fillOval(70, 70, 100, 100);
}
}
2楼的这位大哥 我明白你的意思 但是刚开始main里面 MyDrawPanel drawPanel = new MyDrawPanel();
只是新建了一个MyDrawpanel 的实力而已,没有运行 其中paintComponent()这个方法 ,那为什么刚开始就运行了这个方法里面的画图
展开
 我来答
乁Freedom
2010-08-14 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1412万
展开全部
点击按钮你要他怎么发生变化?
按钮的事件只是让MyDrawPanel发生重绘而已,就算重绘他也是原来那个样子
因为你MyDrawPanel里面的paintComponent方法根本就没有逻辑判断,你要他怎么重绘?

只要在paintComponent那里加个判断,让他一开始一是个颜色,等发生重绘时,就设置另一个颜色

if(xxx) {
一种颜色
} else {
另一种颜色
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amehs135
2010-08-15 · 超过18用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:93.5万
展开全部
虽然我不太明白你的意思 但是有一点 你new 一个panel对象添加在frame上的时候他已经重画了 而你点击按钮的时候 也是有反应的 只不过你paintComponent里面设计有问题 因为 你添加一个panel在frame上的时候 panel容器里面的所有东西都添加在frame上了 自己多动手试试 debug 一下 看程序怎样运行的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
囧SBJ
2010-08-13
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
j
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式