Hallo,
ich versuche nachfolgend mal mein Problem so genau und gut wie möglich darzustellen.
Ich studiere im dritten Semester Elektrotechnik und dieses Semester haben wir Java bekommen. Als ersten Praktikum sollten wir eine Klasse schreiben füür Komplexe Zahlen. Jetzt haben wir eine Vorlesung die GUI behandelt und sollen die Klasse aus dem ersten Praktikum wieder verwenden.
Hierfür sollen wir folgendes tun:
##Die GUI enthält eine Liste zur Verwaltung komplexer Zahlen.
##Der Benutzer kann Zahlen zur Liste hinzufügen und aus der Liste löschen.
##Die Summe und das Produkt aller in der Liste ausgewählten Zahlen werden angezeigt.
Bei dem letzten Punkt habe ich meine Schwierigkeiten. Man soll dies wie folgt realisieren:
## Die Summe und das Produkt der selektierten komplexen Zahlen werden berechnet und in einem Bereich der GUI angezeigt.
## Sind keine Zahlen selektiert, so wird kein Ergebnis angezeigt.
## Die Berechnungen auf selektierten Zahlen werden automatisch durchge-führt. Das heißt sobald sich die Auswahl ändert, werden Summe und Pro-dukt neu berechnet und angezeigt.
Ich habe es schon hinbekommen, dass mir eine selektierte Zahl auf der Konsole angezeigt wird. Aber wie ich es schaffe mir die in der GUI anzeigen zu lassen weiß ich nicht. Es wäre nett wenn mir jemand helfen könnte.
Nachfolgend mein Java-Code:
ich versuche nachfolgend mal mein Problem so genau und gut wie möglich darzustellen.
Ich studiere im dritten Semester Elektrotechnik und dieses Semester haben wir Java bekommen. Als ersten Praktikum sollten wir eine Klasse schreiben füür Komplexe Zahlen. Jetzt haben wir eine Vorlesung die GUI behandelt und sollen die Klasse aus dem ersten Praktikum wieder verwenden.
Hierfür sollen wir folgendes tun:
##Die GUI enthält eine Liste zur Verwaltung komplexer Zahlen.
##Der Benutzer kann Zahlen zur Liste hinzufügen und aus der Liste löschen.
##Die Summe und das Produkt aller in der Liste ausgewählten Zahlen werden angezeigt.
Bei dem letzten Punkt habe ich meine Schwierigkeiten. Man soll dies wie folgt realisieren:
## Die Summe und das Produkt der selektierten komplexen Zahlen werden berechnet und in einem Bereich der GUI angezeigt.
## Sind keine Zahlen selektiert, so wird kein Ergebnis angezeigt.
## Die Berechnungen auf selektierten Zahlen werden automatisch durchge-führt. Das heißt sobald sich die Auswahl ändert, werden Summe und Pro-dukt neu berechnet und angezeigt.
Ich habe es schon hinbekommen, dass mir eine selektierte Zahl auf der Konsole angezeigt wird. Aber wie ich es schaffe mir die in der GUI anzeigen zu lassen weiß ich nicht. Es wäre nett wenn mir jemand helfen könnte.
Nachfolgend mein Java-Code:
Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import aufgabe1_1.Complex;
public class GUI implements ActionListener, ListSelectionListener{
private JList list;
private DefaultListModel listModel;
private JTextArea imag;
private JTextArea real;
private JTextField j;
private JTextField number = new JTextField();
static Complex z1 = new Complex();
final Container contentPane;
public GUI(){
JFrame frame = new JFrame("List of Complex Numbers");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setLocation(100,50);
contentPane = frame.getContentPane();
contentPane.setLayout(new GridLayout(3,3));
listModel = new DefaultListModel();
list = new JList( listModel );
JScrollPane scrollPane = new JScrollPane( list );
contentPane.add(scrollPane);
real = new JTextArea(1,1);
j = new JTextField("j");
imag = new JTextArea(1,1);
[...]
JButton random = new JButton("Add random");
random.setActionCommand("add random");
random.addActionListener(this);
contentPane.add(random);
[...]
list.addListSelectionListener(this); // hier starte ich den SelectionListener
contentPane.add(new JLabel("Sum: ", JLabel.CENTER));
contentPane.invalidate();
frame.pack();
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if("add random".equals(e.getActionCommand())){
Random r = new Random();
double real = 10 * r.nextDouble();
double imag = 10 * r.nextDouble();
Complex z1 = new Complex(real,imag);
if(!listModel.contains(z1)){
listModel.addElement(z1); }
}
[...]
public void valueChanged(ListSelectionEvent event) { // es wir nur die Zahl auf Konsole //ausgegeben, wie ich dies in die GUI einbaue weiß ich aber nicht!
if ( event.getValueIsAdjusting() )
return;
if(list.getSelectedIndex() != -1){
Complex ComplexNumber = new Complex();
Object obj = list.getSelectedValue();
ComplexNumber = (Complex)obj;
System.out.println(ComplexNumber.toString());
}
}
public static void main(String[] args){
new GUI();
}
}