所以我尝试制作一个简单的java swing程序,但我没有完成该程序,但是我想在做功能部分之前先看一下它的外观,这是我的代码:
import layouts.SpringUtilities;
import javax.swing.*;
import layouts.SpringUtilities;
public class FactorialCalculatorFrame extends JFrame {
public FactorialCalculatorFrame(){
JPanel panel = new JPanel();
panel.setLayout(new SpringLayout());
JTextField brojText = new JTextField();
brojText.setColumns(10);
panel.add(new JLabel("Broj:",SwingConstants.RIGHT));
panel.add(brojText);
JButton start = new JButton("Start");
panel.add(new JLabel("Pokreni izracun:",SwingConstants.RIGHT));
panel.add(start);
JProgressBar napredakProgressBar = new JProgressBar();
add(new JLabel("Napredak:",SwingConstants.RIGHT));
add(napredakProgressBar);
JLabel rezultat = new JLabel("Rezultat:");
JLabel ispisiRez = new JLabel("");
add(new JLabel("Rezultat:",SwingConstants.RIGHT));
add(ispisiRez);
start.addactionListener((e)->{
try {
int number = Integer.parseInt(brojText.getText());
//reset GUI components
napredakProgressBar.setvalue(0);
start.setEnabled(false);
ispisiRez.setText("");
//schedule for execution on one of working threads
new primeNumberJavaSwingApp().execute();
} catch (Exception ex) {
ex.printStackTrace();
}
});
SpringUtilities.makeCompactGrid(panel,4,2,5,5);
add(panel);
}
public static void main(String[] args){
FactorialCalculatorFrame frame = new FactorialCalculatorFrame();
frame.setVisible(true);
}
public class primeNumberJavaSwingApp extends SwingWorker<Long,Integer> {
@Override
protected Long doInBackground() throws Exception {
Long l = (long)3.2;
return l;}}}
the Exception that occurs is this Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: No such child: 4
at layouts.SpringUtilities.makeCompactGrid(SpringUtilities.java:190)
at FactorialCalculatorFrame.<init>(FactorialCalculatorFrame.java:55)
为什么会这样,我做错了什么?
我还使用从Oracle复制的SpringUtilities类。 任何帮助都非常有用!