0
我正尝试在java中创建一个小绘图工具。我想要用户使用的颜色来选择按钮时进行更改。我试图设置我的按钮来做到这一点。但是当我运行应用程序并选择一个按钮时,颜色不会改变。我怎样才能解决这个问题?Java代码:创建绘制应用程序
myJPanel.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class myJPanel extends JPanel implements MouseMotionListener, ActionListener
{
JButton red, blue, yellow, eraser;
JPanel p1;
Graphics gg;
public myJPanel()
{
setBackground(Color.white);
setLayout(new BorderLayout());
p1 = new JPanel();
p1.setLayout(new GridLayout(3,3));
red = new JButton("Red");
blue = new JButton("Blue");
yellow = new JButton("Yellow");
eraser = new JButton("Eraser");
p1.add(red);
p1.add(blue);
p1.add(yellow);
p1.add(eraser);
add(p1,"South");
addMouseMotionListener(this);
}
public void mouseMoved(MouseEvent evt)
{
}
public void mouseDragged(MouseEvent evt)
{
Point pt = evt.getPoint();
int x = pt.x;
int y = pt.y;
Graphics gg = getGraphics();
gg.setColor(Color.GREEN);
gg.fillRect(x, y, 5, 5);
}
@Override
public void actionPerformed(ActionEvent event)
{
Object obj = event.getSource();
String choice = event.getActionCommand();
if (obj == red) {
gg.setColor(Color.red);
}
if (obj == blue) {
gg.setColor(Color.blue);
}
if (obj == yellow) {
gg.setColor(Color.yellow);
}
if (obj == eraser) {
gg.setColor(Color.white);
}
}
}
不要使用'的getGraphics()'上一个组件来获得你的图形。在教程将向您展示的JPanel的paintComponent方法内绘制。 –