当前位置: 首页 > 知识库问答 >
问题:

在NetBeans中向JPanel添加图像

赫连卓
2023-03-14

我是java swing的新手,现在我使用NetBeant使用NetBeans中内置的拖放设计器构建GUI。我现在面临的问题是,我有下面发布的代码,它是在Eclipse中编写的,正如您所看到的,我有一个扩展JPanel的类,我将从WEB_CAM捕获的图像添加到该JPanel中。现在,自从我切换到NetBeans,我使用设计器创建了JFrame、JPanel和JButtons,在我用NetBeans编写的代码中,我不知道如何将捕获的图像添加到JPanel中。

html" target="_blank">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个答案

燕朝明
2023-03-14
  1. 类FacePanel extends JPanel{更改为公共类FacePanel extends JPanel{,否则Netbeans将无法创建它的实例。
  2. 做一个“清洁和建设”
  3. FacePanel类从项目资源管理器拖到窗体上...
 类似资料:
  • 我想添加一个图像到一个JPanel中,JPanel在JInternalFrame中,JInternalFrame有一个父,JDesktopPane。 我尝试使用另一个类从路径添加图像,然后,

  • 我创建了一个JPanel,上面有我需要的所有JRadioButtons(称为PortSettings)。我还有一个按钮,叫做端口设置,当用户单击该按钮时,我需要JPanel上来显示单选按钮。我尝试将JPanel添加到actionlistener中,但没有效果。我的代码在下面。除了portsettings按钮之外,我已经从其他按钮中删除了所有其他ActionListener。如果这个问题让人困惑,我

  • 我已经在网上看了,但我仍然无法理解如何将图形添加到JPanel 以下是我的panel类的代码: 我的主要方法是: 文本只会出现在屏幕的一小部分(这适用于我试图绘制的任何图形对象)。我做错了什么?

  • 在运行时添加到当单击时。 我使用以下代码: 但是在中没有显示任何。

  • 我想在FlowLayout和GridBagLayout之间进行权衡。简而言之,我有一些组件要添加到我的JPanel中(我不知道有多少,这是在运行时创建的),我希望这些组件垂直居中。FlowLayout非常适合我的目标,但它在JPanel的顶部添加了组件。所以,我决定使用GridBagConstraints,正如有人在这里建议的那样(Java layout manager垂直中心),但这个解决方案的

  • 我不知道为什么会发生这种情况。Plz帮助.. 任何帮助都很感激。提前谢谢...