Hi,
also auf die Idee, die Methoden für den Button zusammenzufassen bin ich auch schon gekommen, aber da hats an der Umsetzung gehapert. Es ist ja eigentlich auch nur ein Button und der hat eben mehrere Funktionen. Er soll die verschiedenen Arraylisten auslesen und da es sich um 3 Listen mit Checkboxen handelt, sind die Methoden sich sehr ähnlich bzw. gleich nur ich wusste nicht wie ich die zu einer machen soll, weil ich ja im Konstruktor der Methoden jeweils die Arrayliste angebe. kann ich da auch mehrere angeben?
Hier nochmal mein gesamter Quelltext:
1.Fenster:
2.Fenster:
Danke, dass du nochmal drüber guckst
also auf die Idee, die Methoden für den Button zusammenzufassen bin ich auch schon gekommen, aber da hats an der Umsetzung gehapert. Es ist ja eigentlich auch nur ein Button und der hat eben mehrere Funktionen. Er soll die verschiedenen Arraylisten auslesen und da es sich um 3 Listen mit Checkboxen handelt, sind die Methoden sich sehr ähnlich bzw. gleich nur ich wusste nicht wie ich die zu einer machen soll, weil ich ja im Konstruktor der Methoden jeweils die Arrayliste angebe. kann ich da auch mehrere angeben?
Hier nochmal mein gesamter Quelltext:
1.Fenster:
Code:
public class Fenster1 extends JFrame
{
private static final long serialVersionUID = 1L;
private JPanel pWillkommen;
private JPanel pMessdaten;
private JPanel pMessungen;
private JPanel pButton;
private JLabel Willkommen;
private JLabel Messdaten;
private JLabel Messungen;
private JTextField nMessdaten;
private JTextField nMessungen;
private JButton Weiter;
int AnzMessdaten = 0;
int AnzMessungen = 0;
public Fenster1 ()
{
super("Fenster 1");
setSize(500,300);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
pWillkommen = new JPanel();
pMessdaten = new JPanel();
pMessungen = new JPanel();
pButton = new JPanel();
Willkommen = new JLabel("Willkommen bei LabTable");
Messdaten = new JLabel("Wie viele Messdaten (z.B. Temperatur, Zeit...) möchten Sie aufnehmen?");
Messungen = new JLabel("Wie viele Messungen möchten Sie durchführen?");
Weiter = new JButton("Weiter");
nMessdaten = new JTextField(2);
nMessdaten.setHorizontalAlignment(nMessdaten.RIGHT);
nMessungen = new JTextField(2);
nMessungen.setHorizontalAlignment(nMessungen.RIGHT);
Font Ueberschrift = (Willkommen.getFont().deriveFont(Font.BOLD, 20));
Willkommen.setFont(Ueberschrift);
pWillkommen.add(Willkommen);
pMessdaten.add(Messdaten);
pMessdaten.add(nMessdaten);
pMessungen.add(Messungen);
pMessungen.add(nMessungen);
pButton.add(Weiter);
add(pWillkommen);
add(pMessdaten);
add(pMessungen);
add(pButton);
Weiter.addActionListener(new WeiterButton ());
}
public class WeiterButton implements ActionListener {
public void actionPerformed(ActionEvent e) {
String varMessdaten = nMessdaten.getText();
String varMessungen = nMessungen.getText();
try {
Integer.parseInt(varMessdaten);
Integer.parseInt(varMessungen);
}
catch(Exception ex) {
JOptionPane.showMessageDialog(null,"Bitte geben Sie jeweils eine ganze Zahl ein, die größer als 0 ist!");
}
AnzMessdaten = Integer.parseInt(varMessdaten);
AnzMessungen = Integer.parseInt(varMessungen);
if(AnzMessdaten<1 | AnzMessungen<1 ) {
JOptionPane.showMessageDialog(null,"Bitte geben Sie jeweils eine ganze Zahl ein, die größer als 0 ist!");
}
else {
System.out.println("klappt!");
close();
Fenster2 window2 = new Fenster2 (AnzMessdaten, AnzMessungen);
window2.setVisible(true);
}
}
}
public void close() {
WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
2.Fenster:
Code:
public class Fenster2 extends JFrame
{
private JLabel Frage1;
private JButton Weiter2;
private JLabel lSumme;
private JLabel lMittelwert;
private JLabel lStandardabweichung;
int a;
int b;
int c;
int AnzReihen;
int x;
int y;
public Fenster2 (int AnzMessdaten, int AnzMessungen)
{
super("Fenster 2");
x = AnzMessdaten;
y = AnzMessungen;
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
{
}
}
AnzReihen = y + a + b + c;
System.out.println("Anzahl zusätzliche Reihen: " + AnzReihen);
close2();
Fenster3 window3 = new Fenster3 (x, AnzReihen);
window3.setVisible(true);
}
}
public void close2()
{
WindowEvent winClosingEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winClosingEvent);
}
}
Danke, dass du nochmal drüber guckst