所以我在这里看一个教程:http://zetcode.com/tutorials/javagamestutorial/basics/
最后,他们展示了如何将图像设置为背景(这很简单)。他们使用2个代码:Board.java和Image.java(为方便起见,我在下面复制了这些代码)。
出于某种原因,我似乎无法在我的GUI中添加JButton?
我尝试在行Image Main = new Image();
之后将以下代码添加到 Image.java ,但我无法弄清楚它为什么不起作用。通常,我可以使用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();
}
}
答案 0 :(得分:1)
您需要先创建一个JPanel,其中Board和Button布局正确。然后将此JPanel设置为JFrame的内容窗格。您正尝试通过不同的方法向Frame添加两个不同的组件,这会导致混淆。如果你调整框架的大小,你可能会看到你在后台添加的按钮。