我一直在尝试在Netbean的GUI构建器中设置一个窗口,但没有成功。我尝试从我的主类访问JFrame:
public void run(){
JFrame frame = new JFrame("Title of Frame");
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("org/icon.png"));
}
使用my icon.png创建一个与我的主窗口分开的新框架。我想知道是否有某种方法可以访问包含其余UI元素的JFrame,并设置该图标。
我也试过了
new SearchAppUI().setIconImage(null);
这没有什么值得注意的。
直接设置图标:
JFrame.setIconImage("org/icon.png");
给我错误,非静态方法setIconImage(java.awt.Image)无法从静态上下文中引用。
有没有办法从Netbean的swing desinger预览或run()方法设置主JFrame的图标?
答案 0 :(得分:4)
OP有点过时但只是为了记录,试试这个:
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("org/icon.png")));
答案 1 :(得分:3)
NVM,我找到了一个解决方案:http://www.youtube.com/watch?v=o_35iro4b7M
描述如何设置jFrame的图标和标题。基本上,它需要 图书馆
import javax.swing.JFrame;
import java.awt.image.BufferedImage;
import java.io.File;
import java.awt.Image;
import javax.imageio.ImageIO;
我现在非常想坚持使用Netbean的guibuilder,至少对于原型设计来说。
答案 2 :(得分:1)
首先。值得一读How to Make Frames。
您可以使用以下示例。
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class FrameWithIcon extends JFrame {
public static void main(String[] args) {
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
FrameWithIcon myFrame = new FrameWithIcon();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setTitle("Frame with Icon");
myFrame.setLayout(new BorderLayout());
myFrame.setIconImage(
loadImageIcon("org/icon.png").getImage());
Dimension size = new Dimension(250, 100);
JPanel panel = new JPanel();
panel.setPreferredSize(size);
myFrame.add(panel, BorderLayout.LINE_START);
myFrame.setVisible(true);
myFrame.pack();
}
});
} catch (InterruptedException ex) {
} catch (InvocationTargetException ex) {
}
}
/** Returns an ImageIcon, or null if the path was invalid. */
private static ImageIcon loadImageIcon(String path) {
URL imgURL = FrameWithIcon.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
}