簡體   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