Hallo,
Also, ich habe 20 Textfelder in ein JFrame erstellt. Bei diesen möchte ich nun die eingegebenen Zahlen auslesen. Jetzt hab ich allerdings da Problem, dass ich bei jedem TF nun jedes Mal die Zeile zahl1 = Integer.parseInt(jTextField1.getText() usw. schreiben muss - umständlich, vor allem bei der Weiterverarbeitung der Integerwerte.
Also wollte ich die TF mit einem Array kreieren. Beim Kompilieren bekomm ich dann aber immer folgende Fehlermeldungen:
Und so mit:
Ich hab einfach ein Array mit 20 Elementen erstellt und den Code so editiert, dass statt den normalen TF die Array-TF erstellt werden. Eclipse zeigt mir aber keine offensichtliche Fehler an.
Kann mir jemand sagen, warum das nicht geht?
PS: Die ganze funktionierende Klasse, falls was unverständlich ist (Iasst euch nicht von dem KA beeindrucken, die ist schon längst vorbei):
Also, ich habe 20 Textfelder in ein JFrame erstellt. Bei diesen möchte ich nun die eingegebenen Zahlen auslesen. Jetzt hab ich allerdings da Problem, dass ich bei jedem TF nun jedes Mal die Zeile zahl1 = Integer.parseInt(jTextField1.getText() usw. schreiben muss - umständlich, vor allem bei der Weiterverarbeitung der Integerwerte.
Also wollte ich die TF mit einem Array kreieren. Beim Kompilieren bekomm ich dann aber immer folgende Fehlermeldungen:
So sieht der Code ohne Array aus:java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1027)
at java.awt.Container.add(Container.java:352)
at AIT_KA2.initGUI(AIT_KA2.java:81)
at AIT_KA2.<init>(AIT_KA2.java:64)
at AIT_KA2$1.run(AIT_KA2.java:55)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Code:
public class AIT_KA2 extends javax.swing.JFrame {
private JPanel jPanel1;
private JTextField jTextField1; //usw. bis 20
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1);
LayoutManager jPanel1Layout = null;
jPanel1.setLayout(jPanel1Layout);
jPanel1.setBounds(0, 6, 395, 132);
jPanel1.setBorder(BorderFactory.createTitledBorder("Noten der Schüler"));
jPanel1.setLayout(null);
{
jTextField1 = new JTextField();
jPanel1.add(jTextField1);
jTextField1.setBounds(10, 20, 71, 22);
}
{
jTextField2 = new JTextField();
jPanel1.add(jTextField2);
jTextField2.setBounds(87, 20, 71, 22);
}
//usw. bis zum 20 Textfeld
Code:
public class AIT_KA2 extends javax.swing.JFrame {
private JTextField jTextField[] = new JTextField[20];
private JPanel jPanel1;
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1);
LayoutManager jPanel1Layout = null;
jPanel1.setLayout(jPanel1Layout);
jPanel1.setBounds(0, 6, 395, 132);
jPanel1.setBorder(BorderFactory.createTitledBorder("Noten der Schüler"));
jPanel1.setLayout(null);
{
jPanel1.add(jTextField[1]);
jTextField[1].setBounds(10, 20, 71, 22);
}
{
jPanel1.add(jTextField[2]);
jTextField[2].setBounds(87, 20, 71, 22);
}
//usw. bis zum 20 Textfeld
Ich hab einfach ein Array mit 20 Elementen erstellt und den Code so editiert, dass statt den normalen TF die Array-TF erstellt werden. Eclipse zeigt mir aber keine offensichtliche Fehler an.
Kann mir jemand sagen, warum das nicht geht?
PS: Die ganze funktionierende Klasse, falls was unverständlich ist (Iasst euch nicht von dem KA beeindrucken, die ist schon längst vorbei):
Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class AIT_KA2 extends javax.swing.JFrame {
//private JTextField jTextField[] = new JTextField[20];
private JPanel jPanel1;
private JTextField jTextField9;
private JTextField jTextField8;
private JTextField jTextField7;
private JTextField jTextField6;
private JLabel jLabel8;
private JLabel jLabel7;
private JLabel jLabel6;
private JLabel jLabel5;
private JLabel jLabel4;
private JTextField jTextField28;
private JTextField jTextField27;
private JTextField jTextField26;
private JTextField jTextField25;
private JTextField jTextField24;
private JTextField jTextField23;
private JTextField jTextField22;
private JLabel jLabel3;
private JLabel jLabel2;
private JTextField jTextField21;
private JTextField jTextField10;
private JTextField jTextField20;
private JLabel jLabel1;
private JButton jButton2;
private JButton jButton1;
private JTextField jTextField19;
private JTextField jTextField18;
private JTextField jTextField17;
private JTextField jTextField16;
private JTextField jTextField15;
private JTextField jTextField14;
private JTextField jTextField13;
private JTextField jTextField12;
private JTextField jTextField11;
private JTextField jTextField5;
private JTextField jTextField4;
private JTextField jTextField3;
private JTextField jTextField2;
private JTextField jTextField1;
private JPanel jPanel2;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
AIT_KA2 inst = new AIT_KA2();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public AIT_KA2() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1);
LayoutManager jPanel1Layout = null;
jPanel1.setLayout(jPanel1Layout);
jPanel1.setBounds(0, 6, 395, 132);
jPanel1.setBorder(BorderFactory.createTitledBorder("Noten der Schüler"));
jPanel1.setLayout(null);
{
jTextField1 = new JTextField();
jPanel1.add(jTextField1);
jTextField1.setBounds(10, 20, 71, 22);
}
{
jTextField2 = new JTextField();
jPanel1.add(jTextField2);
jTextField2.setBounds(87, 20, 71, 22);
}
{
jTextField3 = new JTextField();
jPanel1.add(jTextField3);
jTextField3.setBounds(164, 20, 71, 22);
}
{
jTextField4 = new JTextField();
jPanel1.add(jTextField4);
jTextField4.setBounds(241, 20, 71, 22);
}
{
jTextField5 = new JTextField();
jPanel1.add(jTextField5);
jTextField5.setBounds(318, 20, 71, 22);
}
{
jTextField6 = new JTextField();
jPanel1.add(jTextField6);
jTextField6.setBounds(10, 48, 71, 22);
}
{
jTextField7 = new JTextField();
jPanel1.add(jTextField7);
jTextField7.setBounds(87, 48, 71, 22);
}
{
jTextField8 = new JTextField();
jPanel1.add(jTextField8);
jTextField8.setBounds(164, 48, 71, 22);
}
{
jTextField9 = new JTextField();
jPanel1.add(jTextField9);
jTextField9.setBounds(241, 48, 71, 22);
}
{
jTextField10 = new JTextField();
jPanel1.add(jTextField10);
jTextField10.setBounds(318, 48, 71, 22);
}
{
jTextField11 = new JTextField();
jPanel1.add(jTextField11);
jTextField11.setBounds(8, 76, 71, 22);
}
{
jTextField12 = new JTextField();
jPanel1.add(jTextField12);
jTextField12.setBounds(87, 76, 71, 22);
}
{
jTextField13 = new JTextField();
jPanel1.add(jTextField13);
jTextField13.setBounds(164, 76, 71, 22);
}
{
jTextField14 = new JTextField();
jPanel1.add(jTextField14);
jTextField14.setBounds(241, 76, 71, 22);
}
{
jTextField15 = new JTextField();
jPanel1.add(jTextField15);
jTextField15.setBounds(318, 76, 71, 22);
}
{
jTextField16 = new JTextField();
jPanel1.add(jTextField16);
jTextField16.setBounds(8, 104, 71, 22);
}
{
jTextField17 = new JTextField();
jPanel1.add(jTextField17);
jTextField17.setBounds(87, 104, 71, 22);
}
{
jTextField18 = new JTextField();
jPanel1.add(jTextField18);
jTextField18.setBounds(164, 104, 71, 22);
}
{
jTextField19 = new JTextField();
jPanel1.add(jTextField19);
jTextField19.setBounds(241, 104, 71, 22);
}
{
jTextField20 = new JTextField();
jPanel1.add(jTextField20);
jTextField20.setBounds(318, 104, 71, 22);
}
}
{
jPanel2 = new JPanel();
getContentPane().add(jPanel2);
LayoutManager jPanel2Layout = null;
jPanel2.setLayout(jPanel2Layout);
jPanel2.setBounds(0, 172, 395, 215);
jPanel2.setBorder(BorderFactory.createTitledBorder("Häufigkeiten"));
jPanel2.setLayout(null);
{
jLabel2 = new JLabel();
jPanel2.add(jLabel2);
jLabel2.setText("Häufigkeiten von 0:");
jLabel2.setBounds(69, 18, 129, 15);
}
{
jLabel3 = new JLabel();
jPanel2.add(jLabel3);
jLabel3.setText("Häufigkeiten von 1:");
jLabel3.setBounds(69, 46, 129, 15);
}
{
jTextField22 = new JTextField();
jPanel2.add(jTextField22);
jTextField22.setBounds(204, 15, 79, 22);
jTextField22.setEditable(false);
}
{
jTextField23 = new JTextField();
jPanel2.add(jTextField23);
jTextField23.setBounds(204, 43, 79, 22);
jTextField23.setEditable(false);
}
{
jTextField24 = new JTextField();
jPanel2.add(jTextField24);
jTextField24.setBounds(204, 71, 79, 22);
jTextField24.setEditable(false);
}
{
jTextField25 = new JTextField();
jPanel2.add(jTextField25);
jTextField25.setBounds(204, 99, 79, 22);
jTextField25.setEditable(false);
}
{
jTextField26 = new JTextField();
jPanel2.add(jTextField26);
jTextField26.setBounds(204, 127, 79, 22);
jTextField26.setEditable(false);
}
{
jTextField27 = new JTextField();
jPanel2.add(jTextField27);
jTextField27.setBounds(204, 155, 79, 22);
jTextField27.setEditable(false);
}
{
jTextField28 = new JTextField();
jPanel2.add(jTextField28);
jTextField28.setBounds(204, 183, 79, 22);
jTextField28.setEditable(false);
}
{
jLabel4 = new JLabel();
jPanel2.add(jLabel4);
jLabel4.setText("Häufigkeiten von 2:");
jLabel4.setBounds(69, 74, 129, 15);
}
{
jLabel5 = new JLabel();
jPanel2.add(jLabel5);
jLabel5.setText("Häufigkeiten von 3:");
jLabel5.setBounds(69, 102, 129, 15);
}
{
jLabel6 = new JLabel();
jPanel2.add(jLabel6);
jLabel6.setText("Häufigkeiten von 4:");
jLabel6.setBounds(69, 130, 129, 15);
}
{
jLabel7 = new JLabel();
jPanel2.add(jLabel7);
jLabel7.setText("Häufigkeiten von 5:");
jLabel7.setBounds(69, 158, 129, 15);
}
{
jLabel8 = new JLabel();
jPanel2.add(jLabel8);
jLabel8.setText("Häufigkeiten von 6:");
jLabel8.setBounds(69, 186, 129, 15);
}
}
{
jButton1 = new JButton();
getContentPane().add(jButton1);
jButton1.setText("Einlesen");
jButton1.setBounds(7, 144, 98, 22);
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
}
{
jLabel1 = new JLabel();
getContentPane().add(jLabel1);
jLabel1.setText("Durchschnitt:");
jLabel1.setBounds(217, 147, 91, 15);
}
{
jTextField21 = new JTextField();
getContentPane().add(jTextField21);
jTextField21.setBounds(313, 144, 79, 22);
}
{
jButton2 = new JButton();
getContentPane().add(jButton2);
jButton2.setText("Rechnen");
jButton2.setBounds(108, 144, 98, 22);
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
}
pack();
this.setSize(416, 425);
} catch (Exception e) {
e.printStackTrace();
}
}
private void jButton1ActionPerformed(ActionEvent evt) {
}
private void jButton2ActionPerformed(ActionEvent evt) {
}
}