Не выводятся checkbox-ы на панели
Отрывок кода из формы MyApplication:
[JAVA]
private JButton getJButton4() {
if (jButton4 == null) {
jButton4 = new JButton();
jButton4.setBounds(new Rectangle(335, 45, 162, 20));
jButton4.setFont(new Font("Arial Unicode MS", Font.BOLD, 11));
jButton4.setText("Выборка измерений");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
jButton4.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
int i, j, n, m;
String s, s1;
boolean eflag;
ArrayList srcNIPs = new ArrayList(0);
ArrayList srcVidy = new ArrayList(0);
jTable.setCellSelectionEnabled(false);
jTable1.setCellSelectionEnabled(false);
Choice_of_measurements chofmeas = new Choice_of_measurements(getJFrame());
chofmeas.loc = jButton4.getLocationOnScreen();
chofmeas.setLocation(chofmeas.loc);
chofmeas.jFrame = MyApplication.this;
n = myTM.getRowCount();
for (i=0; i<n; i++) {
s = (String)myTM.getValueAt(i, 2); // источник измерения
s = s.trim();
if (srcNIPs.size()==0) {
srcNIPs.add(s);
} else {
eflag = false;
m = srcNIPs.size();
for (j=0; j<m; j++) {
s1 = (String)srcNIPs.get(j);
if (s.compareTo(s1)==0) {
eflag = true;
break;
}
}
if (eflag==false) {
srcNIPs.add(s);
}
}
} // конец цикла for (i=0; i<n; i++)
chofmeas.showNIPs(srcNIPs);
for (i=0; i<n; i++) {
s = (String)myTM.getValueAt(i, 3); // вид измерения
s = s.trim();
if (srcVidy.size()==0) {
srcVidy.add(s);
} else {
eflag = false;
m = srcVidy.size();
for (j=0; j<m; j++) {
s1 = (String)srcVidy.get(j);
if (s.compareTo(s1)==0) {
eflag = true;
break;
}
}
if (eflag==false) {
srcVidy.add(s);
}
}
} // конец цикла for (i=0; i<n; i++)
chofmeas.showVidy(srcVidy);
chofmeas.setVisible(true);
}
});
}
return jButton4;
}
[/JAVA]
Отрывки из формы Choice_of_measurememnts:
[JAVA]
public void showNIPs(ArrayList src) {
int i, n;
JCheckBox jCheckBox;
String s;
if ((src!=null)||(src.size()!=0)) {
n = src.size();
if (n>4) {
jPanel4.setBounds(0, 0, 253, 118 + (n-4)*28);
jPanel4.setPreferredSize(new Dimension(253, 118 + (n-4)*28));
}
for (i=0; i<n; i++) {
s = (String)src.get(i);
jCheckBox = new JCheckBox(s);
jPanel4.add(jCheckBox);
if (i==0) {
jCheckBox.setBounds(10, 6, 70, 21);
} else {
jCheckBox.setBounds(10, 6 + i*28, 70, 21);
}
}
}
} // конец функции showNIPs
[/JAVA]
[JAVA]
public void showVidy(ArrayList src) {
int i, n;
JCheckBox jCheckBox;
String s;
if ((src!=null)||(src.size()!=0)) {
n = src.size();
if (n>4) {
jPanel5.setBounds(0, 0, 253, 118 + (n-4)*28);
jPanel5.setPreferredSize(new Dimension(253, 118 + (n-4)*28));
}
for (i=0; i<n; i++) {
s = (String)src.get(i);
jCheckBox = new JCheckBox(s);
jPanel5.add(jCheckBox);
if (i==0) {
jCheckBox.setBounds(10, 6, 70, 21);
} else {
jCheckBox.setBounds(10, 6 + i*28, 70, 21);
}
}
}
} // конец функции showVidy(ArrayList src)
[/JAVA]
Смысл такой: на форме Choice_of_measurememnts есть jScrollPane, внутрь которого помещена jPanel4, и есть JScrollPane1, внутрь которого помещена панель jPanel5. На обе эти панели я хочу повесить чекбоксы, в зависимости от условий, приведённых в MyApplication (myTM -- модель таблицы). Программа идёт, но чекбоксы после нажатия на кнопку "Выбор измерений", которое открывает окно Choice_of_measurements, на этих панелях не выводятся. В чём причина этого?
2. Попробуй сделать тоже самое, только например, в NetBeans Gui Builder и проанализируй полученый код с твоим. Найди "10 отличий";
3. http://www.javalobby.org/articles/filthy-rich-clients/. Рекомендую к прочтению. Поможет сильно :)
4. За тебя никто твой код анализировать не станет, так как своих задач полно, сам понимаешь.