gpt4 book ai didi

java - 如何在图像上放置 JButton?

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:22 24 4
gpt4 key购买 nike

我正在尝试修复一个 JFrame,其中将有一个背景图像和图像上的 JButtons,它将执行一些命令。我尝试在没有布局的情况下进行操作,因为我想在 JFrame 的某些特定位置放置小按钮,但每次我这样做时,背景图像都会出现在前面,或者 JFrame 的大小等于 JFrame 的大小。使用以下代码,JButton 与 JFrame 具有相同的大小。我试图改变 JButton 的大小和位置,但没有改变。你能帮帮我吗?

这是代码


public final class Test extends JComponent
{
private Image background;
private JFrame frame;
private Dimension dimension;<p></p>

<pre><code>public Test()
{
dimension = new Dimension(15, 15);
frame = new JFrame("Iphone");
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(this);
frame.setBounds(641, 0, 344, 655);
frame.setVisible(true);

test = displayButton("tigka");
frame.getContentPane().add(test);
}

public void update(Graphics g)
{
paint(g);
}


public void paintComponent(Graphics g)
{
super.paintComponents(g);
g.drawImage(background, 0, 25, null); // draw background
</code></pre>

<p>// label();</p>

test = displayButton("test");
}

public JButton displayButton(String name)
{
JButton button = new JButton(name);

button.setSize(100, 100);
button.setPreferredSize(dimension);
return button;
}

最佳答案

您需要更改 content pane 以获得您的 Frame 的背景。

public static void main(String[] args) throws IOException {

JFrame frame = new JFrame("Test");

frame.setContentPane(new JPanel() {
BufferedImage image = ImageIO.read(new URL("http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png"));
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, 300, 300, this);
}
});

frame.add(new JButton("Test Button"));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setVisible(true);
}

输出:

screenshot

关于java - 如何在图像上放置 JButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5912913/

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