[英]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);
对于JFrame
, JPanel
等,因为指定了JComponents
( override getPreferredSize
)以将适当的Dimension
返回其JFrame.pack(before JFrame.setVisible)
以进行计算,从而确定容器的适当大小(以像素为单位)
在frame.setVisible(true);
之后调用任何代码来设置,更改或初始化Swing GUI frame.setVisible(true);
叫做
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.