これは私の最初の質問です。Netbeans 7.0のJFrameにバックグラウンドイメージを追加する際のトラブル
私はすでに完全に設計されたアプリケーションを開発中です。今私はコーディングの段階にあり、JFrameに背景画像を配置しながらコンテナとしての役割を果たすことができないため、ボタンやその性質のものを置くことができません。
NetBeans 7.0でこのJFrameクラスファイルを作成しました。誰かがNetbeansのインターフェイスでこれを行う方法を教えてもらえれば幸いです(そうでない場合は、コードは問題ありません)。
私はすでに私がpaintComponentメソッドをオーバーライドするはずですが(私はすでに行っていますが、イメージファイルは表示されていません)。また、私は2番目の質問があります。画像のフルパスを入れたくない場合は、ソースファイルをパッケージに入れて、イメージファイルをどこに置くのかがとても混乱します。
EDIT: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()は、JFrameのプロパティを決定するNetbeansによって生成されたメソッドです。" – marionthefourth