gpt4 book ai didi

java - 将图像作为背景放置在扩展的 JFrame 上有什么问题吗?

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

我想将图像放在扩展的 JFrame 上以将其设置为背景,扩展的 jframe 仅包含菜单栏。问题是,它不显示图片,我不知道我可能做错了什么。非常感谢任何想法

public class VirtualViewGUI extends JFrame{

public VirtualViewGUI()
{
super("Virtual View");

JMenuBar jmenuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenu helpMenu = new JMenu("Help");
JMenu feel = new JMenu("Look & Feel");

JMenu layOutMenu = new JMenu("ConfigureCells");
JMenuItem add_files = new JMenuItem("Select Directory..");
JMenuItem minCellSize = new JMenuItem("height 260 X width 260");
JMenuItem moderateCellSize = new JMenuItem("height 320 X width 320");
JMenuItem maxCellSize = new JMenuItem("height 360 X width 360");
JMenuItem exit = new JMenuItem("Exit");
JMenuItem help = new JMenuItem("Help Content");

fileMenu.add(add_files);
fileMenu.add(exit);
layOutMenu.add(minCellSize);
layOutMenu.add(moderateCellSize);
layOutMenu.add(maxCellSize);
helpMenu.add(help);

jmenuBar.add(fileMenu);
jmenuBar.add(layOutMenu);
jmenuBar.add(helpMenu);

ImageIcon myImage=new ImageIcon("grid_2.png");

JLabel icon = new JLabel(myImage);
icon.setIcon(myImage);
setJMenuBar(jmenuBar);

add(icon);


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

最佳答案

没有,完全没有问题(除了可能没有使用正确的布局管理器)。

与其将图标“添加”到框架,不如将图标作为框架的“内容”...

setContentPane(icon);

这意味着当您向框架添加任何其他组件时,它们将被添加到图像的顶部...

public VirtualViewGUI() {
super("Virtual View");

JMenuBar jmenuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenu helpMenu = new JMenu("Help");
JMenu feel = new JMenu("Look & Feel");

JMenu layOutMenu = new JMenu("ConfigureCells");
JMenuItem add_files = new JMenuItem("Select Directory..");
JMenuItem minCellSize = new JMenuItem("height 260 X width 260");
JMenuItem moderateCellSize = new JMenuItem("height 320 X width 320");
JMenuItem maxCellSize = new JMenuItem("height 360 X width 360");
JMenuItem exit = new JMenuItem("Exit");
JMenuItem help = new JMenuItem("Help Content");

fileMenu.add(add_files);
fileMenu.add(exit);
layOutMenu.add(minCellSize);
layOutMenu.add(moderateCellSize);
layOutMenu.add(maxCellSize);
helpMenu.add(help);

jmenuBar.add(fileMenu);
jmenuBar.add(layOutMenu);
jmenuBar.add(helpMenu);

ImageIcon myImage = new ImageIcon("your picture here");

JLabel icon = new JLabel(myImage);
icon.setIcon(myImage);
setJMenuBar(jmenuBar);

// Don't add the icon to the content pane, make it the content pane, then when you add
// anything to the frame, they will be added ontop... ;)
setContentPane(icon);

pack();
setVisible(true);


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

更新示例

我在构造函数的末尾添加了以下代码

setLayout(new GridBagLayout());
JLabel label = new JLabel("Look ma, no hands!");
label.setFont(label.getFont().deriveFont(Font.BOLD, 36f));
label.setForeground(Color.WHITE);
add(label);

得到这个输出

Capture the beer

关于java - 将图像作为背景放置在扩展的 JFrame 上有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12592696/

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