簡體   English   中英

在NetBeans中將圖像添加到JPanel

[英]add image to JPanel in NetBeans

我是java swing的新手,現在我正在使用NetBeant通過內置於NetBeans的拖放設計器來構建GUI。 我現在面臨的問題是,我有下面發布的代碼,它是用Eclipse編寫的,如你所見,我有一個擴展JPanel的類,並且我將從WEB_CAM捕獲的圖像添加到該JPanel.now,因為我切換了對於NetBeans,我使用設計器創建了JFrame,JPanel,JButton,在用NetBeans編寫的代碼中,我不知道如何將捕獲的圖像添加到JPanel。

在eclipse中,我在另一個類中創建了以下發布的代碼,但是在NetBeans中,每件事都是自動生成的,因此我必須做與eclipse中相同的工作。 我不知道如何在NetBeans中向JPanel添加圖像。

JPanel inEclipse

class FacePanel extends JPanel {
private BufferedImage image;
int count = 0;

public FacePanel() {
    super();
}

public void setFace (BufferedImage img) {
    this.image = img;
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (this.image == null) {
        System.out.println("image is null");
        return;
    }

    g.drawImage(this.image, 10, 10, this.image.getWidth(), this.image.getHeight(), null);
    g.setFont(new Font("arial", 2, 20));
    g.setColor(Color.WHITE);
    g.drawString("processing frame by frame [ frame: " + ( count++) +  " ]", 150, 150);
}

}

NetBeans中的代碼

    private void initComponents() {

    jpanel1_Preview = new javax.swing.JPanel();
    btn_Play = new javax.swing.JButton();
    btn_Pause = new javax.swing.JButton();
    btn_Capture = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    jpanel1_Preview.setBorder(javax.swing.BorderFactory.createTitledBorder("Cam_Preview"));

    javax.swing.GroupLayout jpanel1_PreviewLayout = new javax.swing.GroupLayout(jpanel1_Preview);
    jpanel1_Preview.setLayout(jpanel1_PreviewLayout);
    jpanel1_PreviewLayout.setHorizontalGroup(
        jpanel1_PreviewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 0, Short.MAX_VALUE)
    );
    jpanel1_PreviewLayout.setVerticalGroup(
        jpanel1_PreviewLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 225, Short.MAX_VALUE)
    );

    btn_Play.setText("play");
    btn_Play.setSelected(true);

    btn_Pause.setText("pause");
    btn_Pause.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btn_PauseActionPerformed(evt);
        }
    });

    btn_Capture.setText("capture");
    btn_Capture.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btn_CaptureActionPerformed(evt);
        }
    });
  1. class FacePanel extends JPanel {更改為public class FacePanel extends JPanel { ,否則Netbeans將無法創建它的實例。
  2. 做一個“清潔並建造”
  3. FacePanel類從Project Explorer拖到窗體上。

拖動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM