0
我試圖創建一個簡單的幻燈片程序,如Powerpoint。爲了設計它的GUI,我使用了Netbeans,然後將Netbeans的GUI代碼複製到Eclipse中。NetBeans vs Eclipse的Java佈局定位
Netbeans的生成下面的代碼:
pg = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jPanel1 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(153, 153, 153));
pg.setBackground(new java.awt.Color(255, 255, 255));
pg.setForeground(new java.awt.Color(255, 255, 255));
pg.setPreferredSize(new java.awt.Dimension(255, 234));
javax.swing.GroupLayout pgLayout = new javax.swing.GroupLayout(pg);
pg.setLayout(pgLayout);
pgLayout.setHorizontalGroup(
pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 357, Short.MAX_VALUE)
);
pgLayout.setVerticalGroup(
pgLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 257, Short.MAX_VALUE)
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 62, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 279, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 357, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(pg, javax.swing.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
.addContainerGap())
);
pack();
我的問題是,我想在右邊的jPanel1
改變我自己的類延伸JPanel
。要做到這一點,我寫道:
JPanel jPanel1 = new JPanel();
jPanel1.add(new ToolBoxGUI("ToolBox"));
但是當我運行的代碼,還有右邊沒有ToolBoxGUI
類的按鈕。我應該如何解決這個問題?
一種方式初始化JPANEL1做到這將是一個bean添加到NetBeans GUI。我目前沒有和我一起開發程序,但我認爲在GUI創建者的右邊有一個工具箱。其中一個選項是添加一個bean。點擊「創建Bean」並輸入「ToolBoxGUI」作爲類名稱。然後你可以將它拖到面板上。 – eboix 2011-12-30 23:12:26
從長遠來看,手工設計您的用戶界面會更好。 [佈局管理器可視化指南](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)將幫助你理解這些差異,但總的來說,我發現'BoxLayout'(和Box類),BorderLayout和FlowLayout是最有用的。我從來沒有使用[米格佈局經理](http://miglayout.com/),但我知道有些人真的很喜歡它。並堅持使用NetBeans ...長此以往,你會更快樂:) – Paul 2011-12-30 23:55:42