Hallo,
ich habe folgendes Problem. Ich möchte eine leer Tabelle erstellen, die der Benutzer dann anschließend mit Messdaten füllen kann (ähnlich wie in Excel). Der Benutzer soll durch Eingabe bestimmen, wie viele Reihen und Spalten er haben möchte. Ich habe es mittlerweile über das DefaultTableModel hinbekommen, dass ich die Anzahl der Reihen und Spalten, die dargestellt werden bestimmen kann, aber ich hätte jetzt gerne noch über jeder Spalte einen Header, damit der Benutzer auch sieht, wo er was eintragen soll. Die Header soll der Benutzer aus einer Combobox auswählen. Ich weis, dass ich die Header einer Tabelle normalerweise über ein String Array setze, aber in diesm Fall bin ich mir nicht sicher, wie ich das machen soll, da ich ja noch nicht weis, wie viele Spalten es mal werden.
Hier mal mein bisheriger Quellcode:
Hier noch der Quellcode aus dem anderen Fenster, in welchem der Benuter die Überschriften für seine Spalten auswählen soll:
Danke schonmal
Gruß Ossiost
ich habe folgendes Problem. Ich möchte eine leer Tabelle erstellen, die der Benutzer dann anschließend mit Messdaten füllen kann (ähnlich wie in Excel). Der Benutzer soll durch Eingabe bestimmen, wie viele Reihen und Spalten er haben möchte. Ich habe es mittlerweile über das DefaultTableModel hinbekommen, dass ich die Anzahl der Reihen und Spalten, die dargestellt werden bestimmen kann, aber ich hätte jetzt gerne noch über jeder Spalte einen Header, damit der Benutzer auch sieht, wo er was eintragen soll. Die Header soll der Benutzer aus einer Combobox auswählen. Ich weis, dass ich die Header einer Tabelle normalerweise über ein String Array setze, aber in diesm Fall bin ich mir nicht sicher, wie ich das machen soll, da ich ja noch nicht weis, wie viele Spalten es mal werden.
Hier mal mein bisheriger Quellcode:
Code:
public class Fenster3 extends JFrame
{
int Reihen = 10;
int Spalten = 3;
public Fenster3()
{
super("Fenster 3");
setSize(500,800);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
DefaultTableModel model = new DefaultTableModel(Reihen, Spalten);
JTable tabelle = new JTable(model);
tabelle.setVisible(true);
tabelle.setBounds(10, 10, 300, 600);
add(tabelle);
}
}
Hier noch der Quellcode aus dem anderen Fenster, in welchem der Benuter die Überschriften für seine Spalten auswählen soll:
Code:
public class Fenster2 extends JFrame
{
private JLabel Frage1;
private JButton Weiter2;
private JLabel lSumme;
private JLabel lMittelwert;
private JLabel lStandardabweichung;
int a = 0;
int b = 0;
int c = 0;
int Reihen = 0;
public Fenster2 ()
{
super("Fenster 2");
int x = 5; //Übergangsvariable
setSize(500,25*x+175);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
List<JComboBox> comboBoxList = new ArrayList<JComboBox>();
List<JCheckBox> checkBoxListSum = new ArrayList<JCheckBox>();
List<JCheckBox> checkBoxListMit = new ArrayList<JCheckBox>();
List<JCheckBox> checkBoxListSta = new ArrayList<JCheckBox>();
String[] Messdaten = {"", "Druck", "Masse", "Spannung", "Stromstärke", "Temperatur", "Volumen", "Zeit"};
JPanel spalte0 = new JPanel();
spalte0.setLayout(null);
spalte0.setBounds(50, 50, 200, 300);
JPanel spalte1 = new JPanel();
spalte1.setLayout(null);
spalte1.setBounds(300, 50, 50, 300);
JPanel spalte2 = new JPanel();
spalte2.setLayout(null);
spalte2.setBounds(350, 50, 50, 300);
JPanel spalte3 = new JPanel();
spalte3.setLayout(null);
spalte3.setBounds(400, 50, 50, 300);
Frage1 = new JLabel ("Welche Daten möchten Sie messen?");
Frage1.setBounds(20, 10, 460, 25);
lSumme = new JLabel ("\u2211");
lSumme.setBounds(5, 0, 25, 25);
lSumme.setToolTipText("Summe");
lMittelwert = new JLabel ("\u2205");
lMittelwert.setBounds(5, 0, 25, 25);
lMittelwert.setToolTipText("Mittelwert");
lStandardabweichung = new JLabel ("\u03C3");
lStandardabweichung.setBounds(5, 0, 25, 25);
lStandardabweichung.setToolTipText("Standardabweichung");
Weiter2 = new JButton ("Weiter");
Weiter2.setBounds(20, 25*(x-1)+125, 150, 25);
spalte1.add(lSumme);
spalte2.add(lMittelwert);
spalte3.add(lStandardabweichung);
for(int i = 0; i < x; i++)
{
JComboBox cbMessdaten = new JComboBox(Messdaten);
cbMessdaten.setBounds(0, 25*i+25, 150, 25);
JCheckBox sumBox = new JCheckBox();
sumBox.setBounds(0, 25*i+25, 25, 25);
JCheckBox mitBox = new JCheckBox();
mitBox.setBounds(0, 25*i+25, 25, 25);
JCheckBox staBox = new JCheckBox();
staBox.setBounds(0, 25*i+25, 25, 25);
comboBoxList.add(cbMessdaten);
checkBoxListSum.add(sumBox);
checkBoxListMit.add(mitBox);
checkBoxListSta.add(staBox);
spalte0.add(cbMessdaten);
spalte1.add(sumBox);
spalte2.add(mitBox);
spalte3.add(staBox);
}
add(Frage1);
add(spalte0);
add(spalte1);
add(spalte2);
add(spalte3);
add(Weiter2);
Weiter2.addActionListener(new WeiterButton0 (comboBoxList));
Weiter2.addActionListener(new WeiterButton (checkBoxListSum));
Weiter2.addActionListener(new WeiterButton2 (checkBoxListMit));
Weiter2.addActionListener(new WeiterButton3 (checkBoxListSta));
}
private class WeiterButton0 implements ActionListener
{
List<JComboBox> comboBoxList;
public WeiterButton0(List<JComboBox> list0)
{
comboBoxList = list0;
}
public void actionPerformed(ActionEvent event)
{
for(int i = 0; i < comboBoxList.size(); i++)
{
JComboBox combo = comboBoxList.get(i);
String item = (String)combo.getSelectedItem();
}
}
}
private class WeiterButton implements ActionListener
{
List<JCheckBox> checkBoxListSum;
public WeiterButton(List<JCheckBox> list)
{
checkBoxListSum = list;
}
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < checkBoxListSum.size(); i++)
{
if (checkBoxListSum.get(i).isSelected())
{
System.out.println("Box "+i+ " ist ausgewählt");
a = 1;
}
else
{
}
}
}
}
public class WeiterButton2 implements ActionListener
{
List<JCheckBox> checkBoxListMit;
public WeiterButton2(List<JCheckBox> list2)
{
checkBoxListMit = list2;
}
public void actionPerformed(ActionEvent e)
{
for(int i = 0; i < checkBoxListMit.size(); i++)
{
if (checkBoxListMit.get(i).isSelected())
{
System.out.println("Box "+i+ " ist ausgewählt");
b = 1;
}
else
{
}
}
}
}
private class WeiterButton3 implements ActionListener
{
List<JCheckBox> checkBoxListSta;
public WeiterButton3(List<JCheckBox> list3)
{
checkBoxListSta = list3;
}
public void actionPerformed (ActionEvent e)
{
for(int i = 0; i < checkBoxListSta.size(); i++)
{
if (checkBoxListSta.get(i).isSelected())
{
System.out.println("Box "+i+ " ist ausgewählt");
c = 1;
}
else
{
}
}
Reihen = a + b + c;
System.out.println("Anzahl zusätzliche Reihen: " + Reihen);
close2();
Fenster3 window3 = new Fenster3 ();
window3.setVisible(true);
}
}
public void close2()
{
WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
}
Danke schonmal
Gruß Ossiost