JList에 크기 조정 문제가 있습니다 ... 아래 코드는 ... 내 요구 사항은 Panel에 고정 크기의 JList를 추가하는 것입니다. 프레임을 최대화/최소화하면 그에 따라 JList가 증가/감소해야합니다. 제발 도와주세요. 어떻게 이것을 달성 할 수 있습니까?JList로 크기 조정 문제가 있습니까?
안녕 칼, 그것은하지만 위의 경우에 간단한 경우에 작동 :
다음
은 디자인입니다. 그래서 위의 코드를 지금 설명 중입니다 ..저는 GB 레이아웃의 "TestListControl"이라는 프레임이 있습니다. GB 레이아웃으로 selectDevicesPanel을 추가하십시오. selectDevicesPanel에서 : 이 selectNamesInnerPanel에서 GB 레이아웃 와 selectNamesInnerPanel을 추가 chooseDeviceScrollPane clickToAddDeletePanel selectTeamPanel에서 selectedNameScrollPane : 는 GB 레이아웃 selectNameAddPanel 추가 흐름과 selectTeamPanel을 추가 selectNameAddPanel에서 레이아웃 selectTeamLabel selectTeamComboBox
public class TestListControl extends javax.swing.JFrame {
public TestListControl() {
initComponents();
}
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
selectDevicesPanel = new javax.swing.JPanel();
selectNamesInnerPanel = new javax.swing.JPanel();
selectNameAddPanel = new javax.swing.JPanel();
chooseDeviceScrollPane = new javax.swing.JScrollPane();
chooseNamesList = new javax.swing.JList();
clickToAddDeletePanel = new javax.swing.JPanel();
clickToAddButton = new javax.swing.JButton();
clickToRemoveButton = new javax.swing.JButton();
selectedNameScrollPane = new javax.swing.JScrollPane();
selectedNamesList = new javax.swing.JList();
selectNameLabel = new javax.swing.JLabel();
selectTeamPanel = new javax.swing.JPanel();
selectTeamLabel = new javax.swing.JLabel();
selectTeamComboBox = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
selectDevicesPanel.setBorder(javax.swing.BorderFactory
.createTitledBorder("Member Selection"));
selectDevicesPanel.setLayout(new java.awt.GridBagLayout());
selectNamesInnerPanel.setLayout(new java.awt.GridBagLayout());
selectNameAddPanel.setLayout(new java.awt.GridBagLayout());
chooseNamesList.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "XXXX", "YYYY", "ZZZZ" };
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
chooseNamesList.setMaximumSize(new java.awt.Dimension(46, 88));
chooseNamesList.setMinimumSize(new java.awt.Dimension(94, 98));
chooseDeviceScrollPane.setViewportView(chooseNamesList);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 12, 7, 0);
selectNameAddPanel.add(chooseDeviceScrollPane, gridBagConstraints);
clickToAddDeletePanel.setLayout(new java.awt.GridBagLayout());
clickToAddButton.setText(">>");
clickToAddDeletePanel.add(clickToAddButton,
new java.awt.GridBagConstraints());
clickToRemoveButton.setText("<<");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
clickToAddDeletePanel.add(clickToRemoveButton, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 5);
selectNameAddPanel.add(clickToAddDeletePanel, gridBagConstraints);
selectedNamesList.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "XXXX", "YYYY" };
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
selectedNamesList.setMinimumSize(new java.awt.Dimension(94, 98));
selectedNameScrollPane.setViewportView(selectedNamesList);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 6, 0);
selectNameAddPanel.add(selectedNameScrollPane, gridBagConstraints);
selectNameLabel.setText("Select Name");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 8, 0);
selectNameAddPanel.add(selectNameLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
selectNamesInnerPanel.add(selectNameAddPanel, gridBagConstraints);
selectTeamLabel.setText("Select Team");
selectTeamPanel.add(selectTeamLabel);
selectTeamComboBox.setModel(new javax.swing.DefaultComboBoxModel(
new String[] { "TEAM X", "TEAM Y", "TEAM Z" }));
selectTeamComboBox
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectTeamComboBoxActionPerformed(evt);
}
});
selectTeamPanel.add(selectTeamComboBox);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
selectNamesInnerPanel.add(selectTeamPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
selectDevicesPanel.add(selectNamesInnerPanel, gridBagConstraints);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING).add(0, 400,
Short.MAX_VALUE).add(
layout.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING).add(
layout.createSequentialGroup().add(0, 107,
Short.MAX_VALUE).add(selectDevicesPanel,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
185,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(0, 108, Short.MAX_VALUE))));
layout.setVerticalGroup(layout.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING).add(0, 300,
Short.MAX_VALUE).add(
layout.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING).add(
layout.createSequentialGroup().add(0, 39,
Short.MAX_VALUE).add(selectDevicesPanel,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
221,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(0, 40, Short.MAX_VALUE))));
pack();
}
private void selectTeamComboBoxActionPerformed(
java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new TestListControl().setVisible(true);
}
});
}
private javax.swing.JScrollPane chooseDeviceScrollPane;
private javax.swing.JList chooseNamesList;
private javax.swing.JButton clickToAddButton;
private javax.swing.JPanel clickToAddDeletePanel;
private javax.swing.JButton clickToRemoveButton;
private javax.swing.JPanel selectDevicesPanel;
private javax.swing.JPanel selectNameAddPanel;
private javax.swing.JLabel selectNameLabel;
private javax.swing.JPanel selectNamesInnerPanel;
private javax.swing.JComboBox selectTeamComboBox;
private javax.swing.JLabel selectTeamLabel;
private javax.swing.JPanel selectTeamPanel;
private javax.swing.JScrollPane selectedNameScrollPane;
private javax.swing.JList selectedNamesList;
}
다음 목록 중 어느 것입니까? chooseNamesList 또는 selectedNamesList를 선택 하시겠습니까? –
프레임을 최대화/최소화 할 때 목록 상자를 최대화/최소화해야합니다. – Sidharth
이 GroupLayout 항목으로 문제를 재현하기가 쉽지 않습니다. 테스트 프로그램을 문제를보기 위해 실제로 필요한 소수의 구성 요소로 줄이는 것이 좋습니다. –