gpt4 book ai didi

Java:图形二维

转载 作者:行者123 更新时间:2023-11-30 07:59:27 27 4
gpt4 key购买 nike

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

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 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.*;
import java.awt.event.*;

class MyDrawPanel extends JPanel {

public void paintComponet(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 startColor = 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, startColor, 150, 150, endColor);
g2d.setPaint(gradient);
g2d.fillOval(70, 70, 100, 100);

}
}

所以我一直试图连续 2 小时解决这个问题,但似乎无法解决问题。这个“程序”应该有一个椭圆形,屏幕底部会出现一个按钮,让我可以随机化椭圆形的颜色。我正在使用 netbeans,每当我点击运行时,我都会得到这个: screenshot有没有人有任何解决方案来解决我的问题?如果这是一个愚蠢的问题,很抱歉浪费您的时间。

最佳答案

拼写很重要:paintComponet != paintComponent

始终使用 @Override 作为重写方法的开头。如果您这样做了,编译器会警告您错误。

所以改变这个:

public void paintComponet(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 startColor = 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, startColor, 150, 150, endColor);
g2d.setPaint(gradient);
g2d.fillOval(70, 70, 100, 100);
}

为此:

@Override // don't forget this
protected void paintComponent(Graphics g) { // spelling matters. Also make it protected

// !!!! don't forget this!
super.paintComponent(g); // to have the JPanel do housekeeping painting

Graphics2D g2d = (Graphics2D) g;

int red = (int) (Math.random() * 256);
int green = (int) (Math.random() * 256);
int blue = (int) (Math.random() * 256);
Color startColor = 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, startColor, 150, 150, endColor);
g2d.setPaint(gradient);
g2d.fillOval(70, 70, 100, 100);
}

关于Java:图形二维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com