我在Jframe中有一个JPanel。我想在JPanel中使用paint(Graphics g)方法绘制一条线。但它没有用。请有人在这个问题上帮助我。这是代码。 提前谢谢大家。
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();
}
});
}
}
答案 0 :(得分:1)
你会
覆盖getPreferredSize
的{{1}},否则JPanel
仅使用Java2D返回零JPanel
覆盖Dimension
,详见Oracle tutorial
阅读Oracle教程Inintial Thread
你不会
paintComponent()
使用Null Layout
myPanel.setLayout(null);
代表frame.setSize(400,400);
,JFrame
等,因为JPanel
(JComponents
)被指定为向其返回正确的override getPreferredSize
contianer,Dimension
计算,确定容器的适当大小(以像素为单位)
在调用JFrame.pack(before JFrame.setVisible)
之后调用任何代码来设置,更改或初始化Swing GUI