每個人我有一個代碼,它創建一個圓圈和一個按鈕。圓圈在開始時有一個顏色,每次點擊它時,按鈕都必須改變這個圓圈的顏色,但是當它點擊時,它不會發出控制檯提供的錯誤。由於我是JAVA新手,我無法找到解決方案。下面是代碼:JAVA長寧a圖形顏色
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class GUI extends JPanel implements ActionListener {
JFrame frame;
public static void main(String[] args) {
GUI gui = new GUI();
gui.go();
}
public void go() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("change colors");
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.*;
import javax.swing.*;
public class MyDrawPanel extends JPanel {
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int red = (int) (Math.random()*256);
int green = (int) (Math.random()*256);
int blue = (int) (Math.random()*256);
Color starColor = new Color(red, green, blue); ;
red = (int) (Math.random() * 256);
green = (int) (Math.random() * 256);
blue = (int) (Math.random() * 256);
Color endColor = new Color(red, green, blue);
GradientPaint gradient = new GradientPaint(70, 70,starColor, 150, 150,endColor);
g2d.setPaint(gradient);
g2d.fillOval(70, 70, 100, 100);
}
}
如果您可以附加堆棧跟蹤或至少出現錯誤消息,將會有所幫助。 – QueryLars
如果新來的Java,爲什麼不是Swing的GUI開發的JavaFX?知道區別? – mohsenmadi