我開發一個擺動UI在我需要的時候工具會全屏或有人手動並調整大小..調整基於
我使用改變textarea的大小工具調整Swing組件NetBeans GUI生成器顯然一切都在GroupLayout中。 我目前的圖形用戶界面只允許說文本區域,我沒有添加其他組件。所以我們有JFrame >> JPanel1 >> jTextArea,它被錨定在頂部和兩側,所以當我調整工具的大小時,它會水平擴展以填充整個空間,但由於它不固定在底部,因此調整大小不會填滿底部空間,我離開了在底部空格..
我一直在努力
jPanel1.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
}
});
我想在這裏做的是如果的JPANEL1的大小而變化,這將改變我們調整大小..它應該被調用,並做一些事情,將改變textArea垂直的大小..
這是全部給你我的問題的基礎。現在我實際上有 Jpanel1。在頂部,我將這個TextArea水平地固定在兩側,並且在它下面我有一個從一側水平錨定到另一側的小JPanel2,以顯示一些數據。 當我全屏顯示時,JPanel2和textArea都調整大小以完全左右擺動,但是垂直方向上會在該textArea和JPanel2之間形成一些空白區域。所以我在想的是獲得textArea底部和Jpanel2頂部之間的空間高度(這也是我不知道該怎麼做的)。在上面提到的方法中,我會做一些事情來增加textArea的大小與我發現的空白空間高度。
這裏是我的代碼:
public class NewJFrame extends javax.swing.JFrame {
/**
* Creates new form NewJFrame
*/
public NewJFrame() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jPanel2 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("MyBorder"));
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 30, Short.MAX_VALUE)
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(57, 57, 57)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(88, 88, 88)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, 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(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration//GEN-END:variables
}
,但我不知道該怎麼在這裏面做。 我知道還有一些其他線程關於此,所以請不要將其標記爲重複。 如果沒有其他解決辦法是存在,請幫我找到它..
我已經通過其他鏈接了這顯示了不同的方法解決此問題的解決。但是我將無法使用它,因爲下面的約束條件:
1.我使用的是NetBeans的GUI生成器,它不允許我修改將元素放置在Panel和東西上時生成的代碼內容,所有代碼部分都是自動生成的,因此無法修改。
2.我所經歷的解決方案都有一個共同點,他們沒有任何自動生成的代碼。他們正在從頭開始建設。如果我要從頭開始做,我就能做到,但事實並非如此。
我想對於確切的情況的解決方案,我們不能修改生成的代碼,但調整大小可以動態地做,這樣我可以調用一些聽衆和改變大小..
請容忍我在這一個,我知道這些限制讓像你這樣的人在極端情況下得到幫助。
*「我知道有一些其他的線程也對此,所以請不要將其標記爲重複的。」 *而不是懇求我們不要靠近這列出了你看到的前5個問題,並解釋他們爲什麼沒有回答你的問題。這有助於我們更好地理解您的要求的約束條件,並且確實可以稍微調整一些答案來回答這個問題。事實上,我不能因爲試圖回答而煩惱,因爲你可能會說WTE「我已經看到了這種方法,但它對我不起作用」。 –
當然..謝謝安德魯我會做到這一點。 –
不要讓GUI編輯器指定您的設計;考慮這個[方法](http://stackoverflow.com/a/2561540/230513)來管理嵌套面板。 – trashgod