如何使用Graphics修改图形颜色

yyang0514 2018-08-14 11:31:38
练习head first java例子,目的点击一个按钮改变图形颜色,但实际效果是图形本身就是黄色,点击按钮没有任何效果。
请问如何点按钮修改颜色,谢谢。示例代码如下:

import javax.swing.*;
import java.awt.*;//import actionLister 和actionEvent所在的包
class MyPannel extends JPanel {
public void paintComponent(Graphics g)
{
g.setColor(Color.orange);
g.fillRect(20,50,100,100);
}
}



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;//import actionLister 和actionEvent所在的包

public class SimpleGui3c implements ActionListener{
JFrame frame;
public static void main(String[] args)
{
SimpleGui3c gui=new SimpleGui3c();
gui.go();
}
public void go()
{
frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button=new JButton("change me");
button.addActionListener(this);
MyPannel drawpanel=new MyPannel();
frame.getContentPane().add(BorderLayout.SOUTH,button);
frame.getContentPane().add(BorderLayout.CENTER,drawpanel);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent envent)
{

frame.repaint();
}

}
...全文
858 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chang_4 2018-08-15
  • 打赏
  • 举报
回复
g.setColor(new Color(int r, int g, int b);
  • 打赏
  • 举报
回复
class MyPannel extends JPanel {

Color orangeColor = new Color(255, 200, 0);
Color redColor = new Color(255, 0, 0);
//rectColorState:true,rect设置为橙色, rectColorState:false,rect设置为红色,
boolean rectColorState = true;

public void paintComponent(Graphics g)
{
if(rectColorState)
g.setColor(orangeColor);
else
g.setColor(redColor);
rectColorState = !rectColorState;
g.fillRect(20,50,100,100);
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧