Also das habe ich nun gemacht (vielleicht nicht ganz elegant, aber bin froh das ich es überhaubt geschafft habe )Marco13 hat gesagt.:Du solltest diese "Zeilen" die da eingefügt werden, als eigene Klasse implementieren
Dadurch ist aber jetzt ein neues (teilweise altes) problem aufgetreten:
Die Objekte werden nicht richtig angezeigt. Hab schon alles probiert was ich wusste ( mit validate und repaint und so...),
hat aber nix geholfen.
vielleicht kann mir ja hier wieder jemand helfen, wär echt lieb.
Hier der Quelltext:
... der Klasse "Start" :
Code:
public class Start {
public static void main(String[] args) {
new example("example");
}
}
... der JFrame-klasse:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 29.05.2007
* @author Johannes Paul
*/
public class example extends JFrame {
// Anfang Variablen
NeueTabelle progTabelle = new NeueTabelle();
Container cp = new JPanel();
JScrollPane scrollPane;
// Ende Variablen
public example(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 1005;
int frameHeight = 329;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
cp.setLayout(new GridLayout());
scrollPane = new JScrollPane(progTabelle.getCP());
getContentPane().add(scrollPane);
// Anfang Komponenten
// Ende Komponenten
setResizable(true);
setVisible(true);
}
// Anfang Ereignisprozeduren
public void jButton1ActionPerformed(ActionEvent evt) {
}
// Ende Ereignisprozeduren
}
und der Zeilenerstellungsklasse:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NeueTabelle {
private JTextField jTextField1_1[] = new JTextField[500];
private JTextField jTextField2_1[] = new JTextField[500];
private JTextField jTextField3_1[] = new JTextField[500];
private JTextField jTextField4_1[] = new JTextField[500];
private JComboBox jComboBox1_1[] = new JComboBox[500];
private String[] jComboBox1Daten = {"Beispiel", "Beispiel2", "Beispiel3"};
private JTextField jTextField5_1[] = new JTextField[500];
private JButton jButton1_1[] = new JButton[500];
int akt_position;
int zeilenNummer = 0;
Container cp = new Container();
JScrollPane scrollPane = new JScrollPane(cp);
public JScrollPane getScrollPane() {
return this.scrollPane;
}
public Container getCP() {
return cp;
}
public void neueZeile() {
cp.add(jTextField1_1[getZeilenNummer()]);
cp.add(jTextField2_1[getZeilenNummer()]);
cp.add(jTextField3_1[getZeilenNummer()]);
cp.add(jTextField4_1[getZeilenNummer()]);
cp.add(jComboBox1_1[getZeilenNummer()]);
cp.add(jTextField5_1[getZeilenNummer()]);
cp.add(jButton1_1[getZeilenNummer()]);
erhöheZeilenNummer();
cp.setPreferredSize(new Dimension(900, 48 + getZeilenNummer() * 32));
scrollPane.validate();
scrollPane.repaint();
cp.validate();
cp.repaint();
}
public int getZeilenNummer() {
return this.zeilenNummer;
}
public void erhöheZeilenNummer() {
this.zeilenNummer += 1;
}
public NeueTabelle() {
for (int i = 0; i < 500; i++) {
jTextField1_1[i] = new JTextField();
jTextField2_1[i] = new JTextField();
jTextField3_1[i] = new JTextField();
jTextField4_1[i] = new JTextField();
jComboBox1_1[i] = new JComboBox(jComboBox1Daten);
jTextField5_1[i] = new JTextField();
jButton1_1[i] = new JButton();
}
int akt_position = 48;
for (int i = 0; i < 500; i++) {
akt_position += 32;
jTextField1_1[i].setBounds(16, akt_position,41, 24);
jTextField1_1[i].setText(Integer.toString(i));
jTextField2_1[i].setBounds(64, akt_position, 121, 24);
jTextField2_1[i].setText("Textfeld");
jTextField3_1[i].setBounds(192, akt_position, 121, 24);
jTextField3_1[i].setText("Textfeld");
jTextField4_1[i].setBounds(320, akt_position, 121, 24);
jTextField4_1[i].setText("Textfeld");
jTextField5_1[i].setBounds(600, akt_position, 121, 24);
jTextField5_1[i].setText("Textfeld");
jComboBox1_1[i].setBounds(448, akt_position, 145, 24);
jButton1_1[i].setBounds(728, akt_position, 120, 25);
jButton1_1[i].setText("Button");
jButton1_1[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
neueZeile();
}
});
}
}
}