Java swing不会显示源的更改

时间:2010-05-06 22:39:46

标签: java swing netbeans gui-designer

我正在使用带有netbeans的Java Swing图形编辑器来制作我的项目......但是使用它会带来一些限制,例如我无法使用java swing选项添加到jpanel图像。所以我需要对它进行编码,实现一个新的jPanel。

我的问题是java swing图形编辑器生成的代码无法编辑,所以不是在initComponents()部分添加新的JPanel代码,而是在我的构造函数中调用此函数后执行此操作主要是JPanel。

但是我添加的任何代码都不被“Designer”识别,这意味着在制作我的编码对象之后我无法在“Designer”中使用它们,所有内容都必须编码,考虑到更容易在“Designer”工具中预览和移动元素。

我如何编码我想要的东西,但钢材出现在“设计师”中?

提前谢谢

1 个答案:

答案 0 :(得分:2)

以下是使用NetBeans GUI编辑器将图像添加到JPanel的两种方法。下面的ImagePanel类是使用New JPanel Form命令创建的。

非设计者:第一种方法修改构造函数以设置背景图像,类重写paintComponent()以绘制图像。编辑器中的代码没有变化。

设计器:使用GUI设计器,第二种方法添加名为JLabel的{​​{1}}。使用居中imageLabel创建JLabel的代码位于名为Icon的属性中,而以下两行则位于Custom Creation Code

Post-Creation Code

这是一个合适的package overflow; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JLabel; public class ImagePanel extends javax.swing.JPanel { private Image image; /** Creates new form ImagePanel */ public ImagePanel(Image image) { this.image = image; this.setPreferredSize(new Dimension( image.getWidth(null), image.getHeight(null))); initComponents(); } @Override protected void paintComponent(Graphics g) { g.drawImage(image, 0, 0, null); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { imageLabel = new JLabel(new ImageIcon("image2.jpg"), JLabel.CENTER); imageLabel.setHorizontalTextPosition(JLabel.CENTER); imageLabel.setVerticalTextPosition(JLabel.TOP); setLayout(new java.awt.GridLayout()); imageLabel.setText("imageLabel"); add(imageLabel); }// </editor-fold> // Variables declaration - do not modify private javax.swing.JLabel imageLabel; // End of variables declaration } 类和Main方法来显示面板:

main()

http://i41.tinypic.com/dmw4nl.png http://i41.tinypic.com/dmw4nl.png