gpt4 book ai didi

Java swing 不显示源代码的更改

转载 作者:行者123 更新时间:2023-11-30 05:12:47 25 4
gpt4 key购买 nike

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

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

但是我添加的任何代码都不会被“设计器”识别,这意味着在制作我的编码对象后,我无法在“设计器”中使用它们,并且所有内容都必须编码,考虑到要容易得多,这是一个痛苦在“设计器”工具中预览和移动元素。

我如何编码我想要的内容,但钢出现在“DEsigner”中?

提前致谢

最佳答案

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

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

设计器:使用 GUI 设计器,第二种方法添加一个名为 imageLabelJLabel。创建带有居中 IconJLabel 的代码位于名为 Custom 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() 方法来显示面板:

package overflow;

import java.awt.EventQueue;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Main {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
f.add(new ImagePanel(ImageIO.read(new File("image1.jpg"))));
} catch (IOException ex) {
ex.printStackTrace();
}
f.pack();
f.setVisible(true);
}
});
}
}

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

关于Java swing 不显示源代码的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com