繁体   English   中英

如何在JPanel内部绘制

[英]How to paint inside JPanel

我在Jframe中有一个JPanel,我想使用paint(Graphics g)方法在JPanel中绘制一条线。 但这是行不通的。 请有人帮我解决这个问题。 这是代码。 谢谢大家。

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.SwingUtilities;

public class JavaGraph {

JPanel myPanel;

public JPanel createPanel()
{

    myPanel=new JPanel();
    myPanel.setLayout(null);
    //myPanel.setBackground(Color.black);
    return myPanel;

}
public static void  display()
{
    JFrame frame=new JFrame();
    JavaGraph j=new JavaGraph();
    frame.add(j.createPanel());
    frame.setVisible(true);
    frame.setSize(400,400);
    }

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable()
            {
        public void run()
        {
            display();
        }
            });
}

}

你会

  • JPanel重写getPreferredSize ,否则,使用Java2D的JPanel仅返回零Dimension

  • 覆盖paintComponent() ,更多信息请参见Oracle教程

  • 阅读Oracle教程Inintial Thread

你不会

  • myPanel.setLayout(null); 使用空布局

  • frame.setSize(400,400); 对于JFrameJPanel等,因为指定了JComponentsoverride getPreferredSize )以将适当的Dimension返回其JFrame.pack(before JFrame.setVisible)以进行计算,从而确定容器的适当大小(以像素为单位)

  • frame.setVisible(true);之后调用任何代码来设置,更改或初始化Swing GUI frame.setVisible(true); 叫做

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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