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