Здравствуте! Такая проблема. В апплете находится счетчик (JSpinnner), кнопка. При нажатии кнопки апплет должен обработать значение, находящееся в счетчике и создать что-то типа матрицы из экземпляров JTextField. То есть при нажатии кнопки старая панель с текстовыми полями удаляется и создается новая, куда и помещаются новые поля. Но новосозданная панель не отображается. Я запускал в Eclipse, после нажатии кнопки удаляется панель, а при изменении размеров окошка (созданное Эклипсом) появляется панель с правильным количеством текстовых полей. Но почему же новая панель не отображается сразу? Вот это я запускал: .| Код |
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Ex extends JApplet{
JPanel panel3; JPanel panel2; JSpinner spinner; JTextField[][] jTF;Container c; int count = 0; public void init(){ c = getContentPane(); c.setLayout(new BorderLayout()); JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT)); panel2 = new JPanel(new FlowLayout());
spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1)); JButton pusk = new JButton("ПУСК"); pusk.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) { count++; if(count!=1) panel2.remove(panel3); int x = (Integer)spinner.getValue(); panel3 = new JPanel( new GridLayout(x,x)); panel3.setPreferredSize(new Dimension(x*100,x*50)); jTF = new JTextField[x][x];
for(int i =0; i<x;i++){ for(int j = 0; j < x; j++) jTF[i][j] = new JTextField(5); }
for(int i =0; i<x;i++){ for(int j = 0; j < x; j++) panel3.add(jTF[i][j]); } panel2.add(panel3); } }); panel.add(spinner); panel.add(pusk); c.add(panel2); c.add(panel, BorderLayout.NORTH);
} }
|
Буду благодарен за помощь. А то времени совсем мало.
|