gpt4 book ai didi

java - java 图形的问题

转载 作者:行者123 更新时间:2023-12-01 10:37:14 25 4
gpt4 key购买 nike

谁能给我一些信息,我做错了什么?程序运行,但绘制矩形或其他任何东西不起作用。只是中间有一个空白的地方。我尝试在 kubuntu 15 和 windows 上从终端和 eclipse 打开程序。总是得到相同的结果。

我刚刚开始我的 java 冒险,所以请耐心等待。

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

public class MyGUI {
JFrame frame;
JLabel label;

public static void main(String[] args)
{
MyGUI gui = new MyGUI();
gui.go();
}

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

JButton labelButton = new JButton("Change label");
labelButton.addActionListener(new LabelListener());

JButton colorButton = new JButton("Change color");
colorButton.addActionListener(new ColorListener());

label = new JLabel("LABEL");
DrawSmth2 drawPanel = new DrawSmth2();

frame.getContentPane().add(BorderLayout.SOUTH, colorButton);
frame.getContentPane().add(BorderLayout.CENTER, drawPanel);
frame.getContentPane().add(BorderLayout.EAST, labelButton);
frame.getContentPane().add(BorderLayout.WEST, label);

frame.setSize(680,480);
frame.setVisible(true);
}

class LabelListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
label.setText("DONE");
}
}

class ColorListener implements ActionListener
{
public void actionPerformed(ActionEvent e) {
frame.repaint();
}
}
public class DrawSmth2 extends JPanel{

public void PaintComponent(Graphics g)
{
g.setColor(Color.blue);
g.fillRect(0, 0, getWidth(), getHeight());
}
}
}

最佳答案

Java 区分大小写,这意味着 PaintComponentpaintComponent 不同。为了避免此类问题,请始终向要覆盖的方法添加 @Override 注释(如果您不覆盖现有方法,编译器会通知您 - 更多信息: When do you use Java's @Override annotation and why? )。

另外,不要忘记在您自己实现 paintComponent 时调用 super.paintComponent(g);,让 Swing 执行正确绘制此组件所需的标准操作成分。

关于java - java 图形的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34600363/

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