-4

所以我在这里看一个教程:http: //zetcode.com/tutorials/javagamestutorial/basics/

最后,他们展示了如何将图像设置为背景(这很简单)。他们使用 2 个代码:Board.java 和 Image.java(为方便起见,我在下面复制了这些代码)。

出于某种原因,我似乎无法将 JButton 添加到我的 GUI 中?

我尝试在该行之后将以下代码添加到Image.javaImage Main = new Image();中,但我不知道为什么它不起作用。通常我可以使用add命令将 JButton 添加到 JPanel 并将面板设置为可见setVisible(true)

    JButton start;
    start = new JButton("Click Me");
    Main.getContentPane().add(start);

我还尝试向 Board.java 添加一个类似的代码,只是为了看看它是否有效——当然它没有。为什么我的 JButton 不显示?我知道我做错了什么,但我无法弄清楚。有人可以帮忙吗?


(1) Board.java

package bardejov;

import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JButton;
import javax.swing.JFrame;

import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class Board extends JPanel {

    Image bardejov;

    public Board() {
        ImageIcon ii = new ImageIcon(this.getClass().getResource("bardejov.jpg"));
        bardejov = ii.getImage();
    }

    public void paint(Graphics g) {

        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(bardejov, 10, 10, null); 
    }
}

(2) Image.java

package bardejov;

import javax.swing.JFrame;
import javax.swing.JButton;


public class Image extends JFrame {

    public Image() {

        add(new Board());

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(280, 240);
        setLocationRelativeTo(null);
        setTitle("Bardejov");
        setVisible(true);
    }

    public static void main(String[] args) {
        Image Main = new Image();
    }
}
4

1 回答 1

1

您需要首先创建一个 JPanel,其 Board 和 Button 布局正确。然后将此 JPanel 设置为 JFrame 的内容窗格。您正在尝试通过不同的方法将两个不同的组件添加到 Frame 中,这会导致混淆。如果您调整框架的大小,您可能会在后台看到您添加的按钮。

于 2013-10-07T23:26:07.110 回答