도구의 크기를 조정에 따라 스윙 구성 요소의 크기를 조정 netbeans GUI 빌더는 분명히 모든 것이 GroupLayout에 있습니다. 현재 사용중인 GUI에서는 텍스트 영역 만 말하고 다른 구성 요소는 추가하지 않았습니다. 그래서 우리는 JFrame을 가지고 >> JPanel1 >> jTextArea는 상단과 양면에 고정되어 있으므로 도구의 크기를 조정할 때 전체 공간을 채우기 위해 수평으로 확장되지만 크기를 조정할 때는 하단에 채워지지 않으므로 하단에 고정되어 있기 때문에 JPanel1의 크기가 변경이되는이 변경됩니다 만약 내가 하단에 빈 공간이 탈락하고 공간 .. 내가 도구가 수동으로 내가 크기 조정 ..</p> <p>사용하고 않는 전체 화면 또는 누군가를 갈 때 텍스트 영역의 크기를 변경해야 스윙 UI를 개발하고
내가 노력 해왔다은jPanel1.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
}
});
내가 여기서 뭘 시도하고있을 때 우리 크기 조정 .. 그것은 호출되어야하고 너무 수직으로 textArea의 크기를 변경하는 무언가를해야합니다 ..
이것은 모두 당신에게 줄 것이 었습니다. 내 질문의 기초. 이제 실제로 가지고있는 것은 Jpanel1입니다. 맨 위에는이 TextArea가 양쪽에 수평으로 고정되어 있으며 그 아래에는 작은 JPanel2가 데이터를 표시하기 위해 한면에서 다른면으로 수평으로 고정되어 있습니다. 전체 화면으로 가면 JPanel2와 textArea가 양쪽으로 이동하도록 크기가 조정되지만 세로로 가면 textArea와 JPanel2 사이에 빈 공간이 생깁니다. 그래서 내가 생각했던 것은 textArea bottom과 Jpanel2 top 사이의 공간의 높이를 얻는 것입니다. (이것 또한 어떻게 해야할지 모르겠습니다.) 위에서 언급 한 메서드에서 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 빌더를 사용하고 있습니다. NetBeans를 사용하면 패널에 요소를 넣을 때 생성되는 코드 내용을 수정할 수 없으며, 코드의 모든 부분이 자동 생성되므로 수정 될 수 없습니다.
2. 내가 겪은 해결책에는 모두 공통점이 1 가지는 자동 생성 코드가 없습니다. 그들은 처음부터 그것을 buiding하고있다. 내가 처음부터 그 일을 할 수 있다면 그렇게 할 수는 있지만 여기서는 그렇지 않다.
..
이 하나 나와 함께하시기 바랍니다 곰 , 나는이 많은 제약이 당신을 돕기 위해 극한 상황에 처한 것을 압니다.
* * ". 나도이에 대한 몇 가지 다른 스레드가 알고, 그래서 중복으로 표시하지 마십시오"보다는 가까이하지에 우리를 간청 귀하가 본 상위 5 개 질문을 나열하고 질문에 답하지 않은 이유를 설명하십시오. 이것은 우리가 당신의 요구 사항의 제약 조건을 더 잘 이해할 수있게 도와 주며 실제로 약간 수정 된 답변 중 일부는 대답 할 수 있습니다. 그것이 그렇듯이, 나는 WTE를 "나는 이미 그 접근법을 보았고, 그것은 나를 위해 일하지 않는다"고 말할 때, 대답하려고 애쓰는 데 방해가 될 수 없었다. –
물론입니다. Andrew에게 감사드립니다. –
GUI 편집기가 디자인에 영향을주지 않도록하십시오. 중첩 된 패널을 관리하려면이 [접근] (http://stackoverflow.com/a/2561540/230513)을 고려하십시오. – trashgod