gpt4 book ai didi

java - 向使用 java 图形的 contentPane 添加按钮

转载 作者:行者123 更新时间:2023-11-29 06:18:20 24 4
gpt4 key购买 nike

我在向此 JFrame 添加按钮时遇到问题,它与我正在使用的 Java 图形有冲突。评论中的内容是我迄今为止尝试过的内容,但没有用。

import java.awt.*;
import javax.swing.*;
public class JFramePaint1 {
//Button draw;
public static JButton b = new JButton("button");

public static void main(String[] a) {

JFrame f = new JFrame();

f.setTitle("Drawing Graphics in Frames");
f.setSize(800, 650);
f.setLocation(200,50);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//f.add(b);

f.setContentPane( new ContentComponent());
//f.getContentPane.add(b);

f.setVisible(true);
}
static class ContentComponent extends JComponent {
public int activa = 1;
// add(b);
//this.add(b);
public void paint(Graphics g) {


g.setColor (Color.RED);
g.fillRect(0, 0, 800, 650);
if( activa == 1){

g.setColor(Color.BLACK);
g.drawRect(40, 20, 150, 80);
int x = 40;
int y= 20;
for(int i = 0; i< 4; i++){

g.drawRect(x+10, y+10, 150, 80);
x = x+10;
y = y+10;
}

}

// g.fillRect(20, 10, 100, 60);
// g.drawRect(40, 20, 150, 80);
}
}
}

最佳答案

使用 JComponent 还是 JPanel 都没有关系,它们都是容器。

不同之处在于,默认情况下 JPanel 使用 FlowLayout,而 JComponent 不使用任何布局管理器,因此如果您想使用 JCompnent,则需要设置布局管理器。

自定义绘画应该通过覆盖 paintComponent() 方法来完成。您还应该调用 super.paintComponent(...)。两者之间的另一个区别是 JPanel 会自动绘制背景,而 JComponent 不会。

此外,请与您的代码格式保持一致。始终如一地使用空格或制表符。由于格式原因,发布的代码很难阅读。

关于java - 向使用 java 图形的 contentPane 添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167697/

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