gpt4 book ai didi

java - 向 JPanel 添加图形

转载 作者:行者123 更新时间:2023-12-02 10:08:31 25 4
gpt4 key购买 nike

我正在尝试将图形添加到 JPanel 上。我有用于创建矩形并将其放在框架上的工作代码。现在,由于某种原因,当我尝试将其添加到 JPanel 上时,我看不到任何内容。我不确定我是否做错了什么,或者将图形添加到 JFrame 的过程不适用于添加到 JPanel。

这是不起作用的代码:

面板

import java.awt.Component;
import java.awt.Container;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.FlowLayout;

public class Window2 extends JFrame {
public Window2() {
Container panel = this.getContentPane();
panel.setLayout(new FlowLayout());
panel.setSize(1000,1000);

ExampleComponent2 dc = new ExampleComponent2();
panel.add(dc);

setSize(800,600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args){
Window window = new Window();
}
}

DrawingComponent类

import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import java.awt.Rectangle;

public class ExampleComponent2 extends JComponent {
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;

Rectangle rect1 = new Rectangle(20,20,40,40);
g2.draw(rect1);
}
}

这是有效的代码:

主类

import javax.swing.JFrame;
import java.awt.Rectangle;

public class Main{
public static void main(String[] args){
JFrame window = new JFrame();
window.setSize(650,500);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);

ExampleComponent dc = new ExampleComponent();
window.add(dc);
}
}

最佳答案

ExampleComponent2 dc = new ExampleComponent2();
dc.setPreferredSize(new Dimension(100, 100));
panel.add(dc);

然后它就出现在我面前。

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

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