我對Java很陌生並正在處理一個項目。作爲製作主菜單的測試,我一直在嘗試使用JFrame和Powerranger的圖片。我的問題是我已經嘗試了很多次,花了很多時間試圖讓我的遊戲和我的幫助按鈕到我的窗口左側。我已經嘗試製作4個網格,並放入一個空標籤,但它不會工作。 這是我的代碼:在JFrame中創建背景圖像時將JButton移動到左側
package be.kdg.AngryTanksKlad;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
public class Main {
public static void main(String[] args) throws IOException {
final Image image = ImageIO.read(new URL("http://www.modernmom.com/sites/default/files/images/Power%2BRangers%2BPowerRangersMMPR.jpg"));
final JFrame frame = new JFrame();
frame.add(new ImagePanel(image));
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
@SuppressWarnings("serial")
class ImagePanel extends JPanel {
private Image image;
private boolean tile;
private JPanel menu = new JPanel(new FlowLayout(FlowLayout.LEFT));
ImagePanel(Image image) {
this.image = image;
this.tile = false;
final JButton play = new JButton("PLAY");
final JButton help = new JButton("HELP");
final JLabel empty = new JLabel();
}
menu.setLayout(new GridLayout(4,4));
menu.add(empty);
menu.add(play);
menu.add(help);
add(menu,BorderLayout.CENTER);
menu.setOpaque(false);
setVisible(true);
};
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (tile) {
int iw = image.getWidth(this);
int ih = image.getHeight(this);
if (iw > 0 && ih > 0) {
for (int x = 0; x < getWidth(); x += iw) {
for (int y = 0; y < getHeight(); y += ih) {
g.drawImage(image, x, y, iw, ih, this);
}
}
}
} else {
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
}
1)源代碼中的單個空白行空白*總是*足夠。 '{'之後或'}'之前的空行通常也是多餘的。 2)提供圖形用戶界面的ASCII藝術(或帶有簡單繪圖的圖像),因爲它應該以最小的尺寸出現並且(如果可調整大小)以額外的寬度/高度出現。 –
..代碼不能幹淨地編譯。 :( –
對不起,我還不是一個java嚮導;) –