這是我的第一個問題,請耐心等待。在Netbeans 7.0中向JFrame添加背景圖片時遇到問題
我正在研究一個應用程序(我已經完全設計)。現在我處於編碼階段,我無法在JFrame上放置背景圖像,同時仍然允許它扮演容器的角色,因此我可以在其上放置按鈕以及這種類型的東西。
我在Netbeans 7.0中創建了這個JFrame類文件,如果有人能告訴我如何通過Netbeans的接口來做到這一點,那將是很好的(如果沒有,只需要代碼就可以)。
我已經知道,我應該重寫paintComponent方法(我已經做了,但我的圖像文件沒有顯示)。另外我還有一個問題,我不想把圖像的完整文件路徑,我有我的源文件包,現在我很困惑,我要把我的圖像文件。
編輯:initComponoents()是由Netbeans生成的用於確定JFrame屬性的方法。
public class TinyTowerOrganizerInterface extends javax.swing.JFrame {
/** Creates new form TinyTowerOrganizerInterface */
Image backgroundImage = Toolkit.getDefaultToolkit().getImage("D:/Java/TinyTowerOrganizer/Images/Background.jpg");
public TinyTowerOrganizerInterface() throws IOException {
initComponents();
class BackgroundPanel extends javax.swing.JPanel{
private Image image;
public BackgroundPanel(Image image){
this.image = image;
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
}
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Tiny Tower Organizer");
setFont(new java.awt.Font("Pixelated", 0, 18)); // NOI18N
setMinimumSize(new java.awt.Dimension(900, 500));
setName("frame"); // NOI18N
setResizable(false);
setUndecorated(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 900, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 500, Short.MAX_VALUE)
);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
new TinyTowerOrganizerInterface().setVisible(true);
} catch (IOException ex) {
Logger.getLogger(TinyTowerOrganizerInterface.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
'initComponents()'做了什麼? – Moonbeam
我在原始文章中做了一個編輯,說明它的功能。 「initComponoents()是由Netbeans生成的確定JFrame屬性的方法。」 – marionthefourth