[英]Adding Graphics to JPanel
我正在尝试将图形添加到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);
然后它对我显示。
问题是您的布局。 尝试使用Borderlayout,然后阅读一些API。
panel.setLayout(new BorderLayout());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.