Hallo ich mach gerade ein Projekt, in dem ich versuche eine Musiksammlung zu simulieren.
In der Konsole hat es funktioniert. Ich versuche nun gerade eine GUI zu bauen.
Ich hab extra JCheckboxen gewählt und keine Buttons, weil ich mir dachte, dass es leichter würde, mehrere in einer Klasse zu haben und auszuwerten.
Vielleicht fehlt mir dafür noch ein button. Ich dachte es mir so, dass nach Druck auf einen Knopf festgestellt wird, welche der Aktionen ausgeführt werdensoll. Man müsste feststellen, welches angeklickt wurde und die entsprechende aktion ausführen anstelle der zahlen in dem switch/case für die Konsole. Nur leider krieg ich die sache mit den ItemStateChanged nicht auf die reihe. könnte mir vlt jemans sagen,
wie die methode aussehen müsste, damit etwas passoiert nach dem Anklicken des Feldes.
Vielen Dank
In der Konsole hat es funktioniert. Ich versuche nun gerade eine GUI zu bauen.
Ich hab extra JCheckboxen gewählt und keine Buttons, weil ich mir dachte, dass es leichter würde, mehrere in einer Klasse zu haben und auszuwerten.
Vielleicht fehlt mir dafür noch ein button. Ich dachte es mir so, dass nach Druck auf einen Knopf festgestellt wird, welche der Aktionen ausgeführt werdensoll. Man müsste feststellen, welches angeklickt wurde und die entsprechende aktion ausführen anstelle der zahlen in dem switch/case für die Konsole. Nur leider krieg ich die sache mit den ItemStateChanged nicht auf die reihe. könnte mir vlt jemans sagen,
wie die methode aussehen müsste, damit etwas passoiert nach dem Anklicken des Feldes.
Vielen Dank
Java:
package bank;
import java.awt.*;
import java.awt.Color;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class CDTest2 implements ItemListener {
static ArrayList<CD> CDDatenbank = new ArrayList<CD>();
JCheckBox checkAlbum;
JCheckBox checkEnde;
boolean running;
String jaOderNein;
Image aktBild;
JFrame neuerFrame;
Label CDGold;
JTextField neuerTitel;
JTextField alterTitel;
public static void main (String[]args) {
CDTest2 CDTest3 = new CDTest2();
CDTest3.run();
}
public void run() {
running=true;
CD cd1984 = new CD("Bochum","Groenemeyer","Deutschpop", 12);
CD cdblur = new CD("blur", "blur", "Britpop", 10);
CD cdshakira = new CD("Waka Waka", "Shakira", "Pop", 5);
CD cdPur = new CD("Abenteuerland", "Die Prinzen", "Deutschpop", 3);
CD cdauswaerts = new CD ("Auswärtsspiel", "Tote Hosen", "Deutschrock", 10);
CDDatenbank.add(cdshakira);
CDDatenbank.add(cd1984);
CDDatenbank.add(cdblur);
CDDatenbank.add(cdauswaerts);
CDDatenbank.add(cdPur);
JFrame neuerFrame= new JFrame();
neuerFrame.setSize(700, 700);
neuerFrame.setVisible(true);
neuerFrame.setLayout(new BorderLayout());
neuerFrame.setBackground(Color.WHITE);
JPanel CDPanel= new JPanel();
JTextField neuerTiteletc = new JTextField(10);
JTextField alterTiteletc = new JTextField(10);
CDPanel.add(alterTiteletc);
CDPanel.add(neuerTiteletc);
neuerFrame.getContentPane().add(BorderLayout.EAST,CDPanel);
neuerFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CDPanel.setSize(100,100);
CDPanel.setBackground(Color.white);
JCheckBox checkAlbum= new JCheckBox ("Albumtitel ändern");
JCheckBox checkKuenstler= new JCheckBox("Interpret ändern");
JCheckBox checkGenre= new JCheckBox("Genre ändern");
JCheckBox checkPreis= new JCheckBox("Preis ändern");
JCheckBox checkEnde= new JCheckBox("Programm beenden");
checkEnde.addItemListener(this);
checkGenre.addItemListener(this);
checkAlbum.addItemListener(this);
checkKuenstler.addItemListener(this);
checkPreis.addItemListener(this);
JPanel Boxen = new JPanel();
neuerFrame.getContentPane().add(BorderLayout.NORTH,Boxen);
Boxen.setBackground(Color.darkGray);
Boxen.setVisible(true);
Boxen.add(checkAlbum);
Boxen.add(checkKuenstler);
Boxen.add(checkGenre);
Boxen.add(checkPreis);
Boxen.add(checkEnde);
JPanel Infopanel =new JPanel();
Infopanel.setSize(300,300);
Infopanel.setVisible(true);
neuerFrame.getContentPane().add(BorderLayout.WEST,Infopanel);
JTextArea Infoarea = new JTextArea(21,45);
Infoarea.setLineWrap(true);
Infopanel.add(Infoarea);
ImageIcon CDBild = new ImageIcon ("C:\\Users\\Benedikt\\Documents\\java\\CD.jpg");
JLabel CDGold = new JLabel(CDBild);
CDGold.setSize(300,300);
CDGold.setVisible(true);
neuerFrame.getContentPane().add(BorderLayout.SOUTH,CDGold);
while (running) {
String aenderung="";
BufferedReader breader = new BufferedReader (new InputStreamReader(System.in));
System.out.println("1=Albumtitel ändern"); System.out.println("2=Interpret ändern"); System.out.println("3=Genre ändern"); System.out.println("4=Preis ändern"); System.out.println("Bitte geben Sie die entsprechende Zahl hier ein:");
try {
aenderung = breader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i=0;
switch (aenderung) {
case("1"):
System.out.print ("Geben Sie den Albumtitel ein, den Sie ändern ändern wollen:");
String zuAenderungTitel ="";
try {
zuAenderungTitel = breader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (i=0; i<CDDatenbank.size(); i++) {
if(CDDatenbank.get(i).titel.equals(zuAenderungTitel)) {
int Indexname= CDDatenbank.indexOf(CDDatenbank.get(i));
CD temp= CDDatenbank.get(Indexname);
System.out.println("Bitte geben Sie den neuen Titel ein:");
String geanderterTitel;
try {
geanderterTitel = breader.readLine();
temp.titel= geanderterTitel;
CDDatenbank.set(Indexname, temp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}}
break;
case ("2"):
String zuAenderungInterpret= "";
System.out.println("Geben Sie den Interpreten ein, den Sie ändern wollen:");
try {
zuAenderungInterpret = breader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (i=0; i<CDDatenbank.size(); i++) {
if(CDDatenbank.get(i).Interpret.equals(zuAenderungInterpret)) {
int Indexname2= CDDatenbank.indexOf(CDDatenbank.get(i));
CD temp2= CDDatenbank.get(Indexname2);
System.out.println("Bitte geben Sie den neuen Interpreten ein:");
String geanderterInterpret;
try {
geanderterInterpret = breader.readLine();
temp2.Interpret= geanderterInterpret;
CDDatenbank.set(Indexname2,temp2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}}
break;
case ("3"):
String zuAenderungInterpretFuerGenre= "";
System.out.println("Geben Sie den Interpreten ein, für den Sie das Genre ändern möchten:");
try {
zuAenderungInterpretFuerGenre = breader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (i=0; i<CDDatenbank.size(); i++) {
if(CDDatenbank.get(i).Interpret.equals(zuAenderungInterpretFuerGenre)) {
int Indexname3= CDDatenbank.indexOf(CDDatenbank.get(i));
CD temp3= CDDatenbank.get(Indexname3);
System.out.println("Bitte geben Sie das neue Genre ein:");
String geandertesGenre;
try {
geandertesGenre = breader.readLine();
temp3.Genre= geandertesGenre;
CDDatenbank.set(Indexname3,temp3);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}}
break;
case ("4"):
String zuAenderungInterpretfuerPreis= "";
System.out.println("Geben Sie den Interpreten ein, für den Sie den Sie den Preis ändern wollen:");
try {
zuAenderungInterpretfuerPreis = breader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (i=0; i<CDDatenbank.size(); i++) {
if(CDDatenbank.get(i).Interpret.equals(zuAenderungInterpretfuerPreis)) {
int Indexname4= CDDatenbank.indexOf(CDDatenbank.get(i));
CD temp4= CDDatenbank.get(Indexname4);
System.out.println("Bitte geben Sie den neuen Preis ein:");
String geanderterPreis;
try {
geanderterPreis = breader.readLine();
Integer neuerPreis = Integer.parseInt(geanderterPreis);
temp4.Kaufpreis= neuerPreis;
CDDatenbank.set(Indexname4,temp4);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}}
break;
}
System.out.print("Titel");
Infoarea.append (" - ");
Infoarea.append("Titel");
System.out.print(" - ");
Infoarea.append(" - ");
System.out.print("Interpret");
Infoarea.append("Interpret");
System.out.print(" - ");
Infoarea.append(" - ");
System.out.print("Genre");
Infoarea.append ("Genre");
System.out.print(" - ");
Infoarea.append(" - ");
Infoarea.append ("Preis");
Infoarea.append("\n");
System.out.println("");
Infoarea.append("\n");
System.out.println("");
Infoarea.append("");
double summePreise = 0;
String alleGenre="";
String alleInterpreten="";
String alleTitel="";
for (int a=0; a<CDDatenbank.size();a++) {
summePreise += CDDatenbank.get(a).Kaufpreis;
alleGenre = CDDatenbank.get(a).Genre;
alleTitel = CDDatenbank.get(a).titel;
//System.out.print(summePreise);
Infoarea.append (" - ");
System.out.println ("-");
Infoarea.append (CDDatenbank.get(a).titel);
System.out.println(CDDatenbank.get(a).titel);
Infoarea.append (" - ");
System.out.println(" - ");
Infoarea.append (CDDatenbank.get(a).Interpret);
System.out.println(CDDatenbank.get(a).Interpret);
Infoarea.append (" - ");
System.out.println(" - ");
Infoarea.append (CDDatenbank.get(a).Genre + "\n");
System.out.println (CDDatenbank.get(a).Kaufpreis);
}
System.out.println("Summe der Preise: " +summePreise);
}
} //run
public void itemStateChanged(ItemEvent arg0) {
if (checkEnde.isSelected())
System.out.println("Der Mann hört auf Golf zu fahren");
}}