繁体   English   中英

向JPanel添加图形

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM