J
julia9119
Gast
Hi,
ich habe ein kleines großes Problem wir müssen in der Uni ein angeblich kleines Javaprojekt durchführen. Da ich aber noch keine Ahnung habe wie das geht, und das wohl auch nie mein Fachgebiet wird, hoffe ich auf eure Hilfe!
Es geht um ein Programm mit dem man "Olympische Spiele" anschauen, bearbeiten, erstellen und löschen kann. In meiner Gruppe bin ich zuständig für die grafische Oberfläche. Ich bin auch schon soweit, dass das "Startfenster" so aussieht wie es soll, dass der "Neu" Button funktioniert und der "Löschen" Button. ("Bearbeiten" sollen wir nicht implementieren... Leider komme ich im Moment einfach nicht weiter, obwohl ich doch nur die beiden Fenster, die sich öffnen wenn man auf "Neu" bzw "Löschen" klickt, mit den "Abbrechen" bzw "Zurück" Buttons schließen will...
hier einfach mal die Aufgabenstellung und mein bisheriges Coding...
(Es ist nicht gerade wenig aber es wäre echt toll wenn mir jemand helfen würde!)
Aufgabe:
Graphische Oberfläche
Das Programm zeigt standardmäßig eine nicht editierbare Tabelle mit folgenden Informationen zu den
erfassten Olympischen Spielen an (Beispiel)
Olympiade Ort Jahr So/Wi
XX München 1972 So
XI Sapporo 1972 Wi
XX Turin 2006 Wi
Die Reihenfolge entspricht der Standardsortierung (compareTo() von Spiel). Es soll möglich sein,
alternativ die folgende Sortierreihenfolge zu aktivieren (z.B. via Button):
• Sommer- vor Winterspiele, Jahr absteigend, Ort aufsteigend
Die jeweils aktive Sortierreihenfolge kann auch umgekehrt werden (z.B. via Button).
Das Programm unterstützt die folgenden Aktivitäten
• Neu
Erfassen von Spielen in einem eigenen modalen Formular. Bei erfolgreichem Erfassen wird
der Datensatz in die Übersichtstabelle (an korrekter Stelle) aufgenommen.
(Auswahl von Ort via List- oder Combo-Box)
• Anzeigen
Doppelklick auf einen Tabelleneintrag zeigt in einem (nicht editierbaren) modalen Formular
alle Details. Hier kann das gleiche Formular wie bei der Aktivität "Neu" verwendet werden.
• Bearbeiten
(Diese Implementierung wird für die aktuelle Projektarbeit nicht gefordert.)
• Löschen
Ein markierter Datensatz kann gelöscht werden (Bestätigungsdialog).
Mein bisheriges Coding:
[Java] import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class grafischeOberfläche extends JFrame implements ActionListener{
public grafischeOberfläche(){
Container c = getContentPane();
JPanel p1;
JButton b1 = new JButton("Neu");
JButton b2 = new JButton("Bearbeiten");
JButton b3 = new JButton("Löschen");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
p1.add( b3);
c.add( p1, BorderLayout.SOUTH );
ActionListener lis = new NeuAnlegen();
b1.addActionListener( lis );
ActionListener lis2 = new löschen();
b3.addActionListener( lis2 );
Container d = getContentPane(); //Tabelle !!!!!!!!!!!!!
String[] columnNames = { "Stadt", "Land", "Einwohnerzahl" };
String[][] rowData = { { "Zürich", "CH ", "371000" },
{ "Bern", "CH ", "128000" }, { "Werdenberg", "CH ", "90" },
{ "Berlin", "DE ", "3400000" }};
JTable tab = new JTable( rowData, columnNames );
d.add( new JScrollPane( tab ) );
}
public static void main( String[] args ) {
grafischeOberfläche fenster = new grafischeOberfläche();
fenster.setTitle("Die Olympischen Spiele");
fenster.setSize( 600,400);
fenster.setLocation(200, 200);
fenster.setVisible( true );
fenster.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
//import com.toedter.calendar.JDateChooser;
public class NeuAnlegen extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) {
NeuAnlegen fenster2 = new NeuAnlegen();
fenster2.setTitle("neue Olympiade anlegen");
fenster2.setSize( 400, 200 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public NeuAnlegen(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("Erfassen");
JButton b2 = new JButton("Abbrechen");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
// ActionListener lis = new Schliessen();//??????
// b2.addActionListener( lis );
p2 = new JPanel( new GridLayout(7,2) );
p2.add(new JLabel("Austragungsort: ")); p2.add(new JTextField());
p2.add(new JLabel("Austragungsjahr: ")); p2.add(new JTextField());
p2.add(new JLabel("Sommer- oder Winterspiel: ")); p2.add(new JTextField());
// p2.add(new JDateChooser());
// datum.setDate(new Date());
// xyz.add(datum);
p2.add(new JLabel("Olympiade: ")); p2.add(new JTextField());
p2.add(new JLabel("Datum Eröffnungsfeier: ")); p2.add(new JTextField());
p2.add(new JLabel("Datum Abschlussfeier: ")); p2.add(new JTextField());
p2.add(new JLabel("Schrimherr: ")); p2.add(new JTextField());
c.add(p2);
}
} [/Java]
[Java] import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class vorhanden extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) {
vorhanden fenster2 = new vorhanden();
fenster2.setTitle("Achtung!");
fenster2.setSize( 300, 200 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public vorhanden(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("OK");
JButton b2 = new JButton("Zurück");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
p2 = new JPanel( new GridLayout() );
p2.add(new JLabel("Olympisches Spiel bereits vorhanden. ", JLabel.CENTER));
c.add(p2);
}
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class löschen extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Löschen")) {
löschen fenster2 = new löschen();
fenster2.setTitle("Achtung!");
fenster2.setSize( 300, 150 );
fenster2.setLocation(100, 100);
fenster2.setVisible( true );
}
}
public löschen(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("Ja");
JButton b2 = new JButton("Nein");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
// ActionListener lis = new Schliessen();//?????
// b1.addActionListener( lis );
//
// ActionListener lis2 = new Schliessen();
// b2.addActionListener( lis2 );
p2 = new JPanel( new GridLayout() );
p2.add(new JLabel("Wollen Sie diesen Datensatz wirklich löschen? ", JLabel.CENTER));
c.add(p2);
}
// public void actionPerformed1(ActionEvent f) {
// if (f.getActionCommand().equals("Nein")) {
// Schliessen();
// }
// }
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class Übersicht extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) { //!!!!!!!!!!!!!!!
Übersicht fenster2 = new Übersicht();
fenster2.setTitle("Übersicht");
fenster2.setSize( 600, 400 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public Übersicht(){
Container c = getContentPane();
JPanel p1;
JButton b1 = new JButton("Zurück");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
c.add( p1, BorderLayout.SOUTH );
}
Container d = getContentPane(); //Tabelle !!!!!!!!!!!!!
String[] columnNames = { "Stadt", "Land", "Einwohnerzahl" };
String[][] rowData = { { "Zürich", "CH ", "371000" },
{ "Bern", "CH ", "128000" }, { "Werdenberg", "CH ", "90" },
{ "Berlin", "DE ", "3400000" }};
JTable tab = new JTable( rowData, columnNames );
} [/Java]
[Java]
//
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import javax.swing.*;
//
// public abstract class Schliessen extends JFrame implements ActionListener{
//
// public Schliessen(){
// setVisible(false);
//
// }
//
//
// } [/Java]
soo, das wars..wie gesagt nicht gerade wenig aber ich bin echt hilflos und weiß nicht weiter
danke schonmal an alle!
Gruß, Julia
ich habe ein kleines großes Problem wir müssen in der Uni ein angeblich kleines Javaprojekt durchführen. Da ich aber noch keine Ahnung habe wie das geht, und das wohl auch nie mein Fachgebiet wird, hoffe ich auf eure Hilfe!
Es geht um ein Programm mit dem man "Olympische Spiele" anschauen, bearbeiten, erstellen und löschen kann. In meiner Gruppe bin ich zuständig für die grafische Oberfläche. Ich bin auch schon soweit, dass das "Startfenster" so aussieht wie es soll, dass der "Neu" Button funktioniert und der "Löschen" Button. ("Bearbeiten" sollen wir nicht implementieren... Leider komme ich im Moment einfach nicht weiter, obwohl ich doch nur die beiden Fenster, die sich öffnen wenn man auf "Neu" bzw "Löschen" klickt, mit den "Abbrechen" bzw "Zurück" Buttons schließen will...
hier einfach mal die Aufgabenstellung und mein bisheriges Coding...
(Es ist nicht gerade wenig aber es wäre echt toll wenn mir jemand helfen würde!)
Aufgabe:
Graphische Oberfläche
Das Programm zeigt standardmäßig eine nicht editierbare Tabelle mit folgenden Informationen zu den
erfassten Olympischen Spielen an (Beispiel)
Olympiade Ort Jahr So/Wi
XX München 1972 So
XI Sapporo 1972 Wi
XX Turin 2006 Wi
Die Reihenfolge entspricht der Standardsortierung (compareTo() von Spiel). Es soll möglich sein,
alternativ die folgende Sortierreihenfolge zu aktivieren (z.B. via Button):
• Sommer- vor Winterspiele, Jahr absteigend, Ort aufsteigend
Die jeweils aktive Sortierreihenfolge kann auch umgekehrt werden (z.B. via Button).
Das Programm unterstützt die folgenden Aktivitäten
• Neu
Erfassen von Spielen in einem eigenen modalen Formular. Bei erfolgreichem Erfassen wird
der Datensatz in die Übersichtstabelle (an korrekter Stelle) aufgenommen.
(Auswahl von Ort via List- oder Combo-Box)
• Anzeigen
Doppelklick auf einen Tabelleneintrag zeigt in einem (nicht editierbaren) modalen Formular
alle Details. Hier kann das gleiche Formular wie bei der Aktivität "Neu" verwendet werden.
• Bearbeiten
(Diese Implementierung wird für die aktuelle Projektarbeit nicht gefordert.)
• Löschen
Ein markierter Datensatz kann gelöscht werden (Bestätigungsdialog).
Mein bisheriges Coding:
[Java] import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class grafischeOberfläche extends JFrame implements ActionListener{
public grafischeOberfläche(){
Container c = getContentPane();
JPanel p1;
JButton b1 = new JButton("Neu");
JButton b2 = new JButton("Bearbeiten");
JButton b3 = new JButton("Löschen");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
p1.add( b3);
c.add( p1, BorderLayout.SOUTH );
ActionListener lis = new NeuAnlegen();
b1.addActionListener( lis );
ActionListener lis2 = new löschen();
b3.addActionListener( lis2 );
Container d = getContentPane(); //Tabelle !!!!!!!!!!!!!
String[] columnNames = { "Stadt", "Land", "Einwohnerzahl" };
String[][] rowData = { { "Zürich", "CH ", "371000" },
{ "Bern", "CH ", "128000" }, { "Werdenberg", "CH ", "90" },
{ "Berlin", "DE ", "3400000" }};
JTable tab = new JTable( rowData, columnNames );
d.add( new JScrollPane( tab ) );
}
public static void main( String[] args ) {
grafischeOberfläche fenster = new grafischeOberfläche();
fenster.setTitle("Die Olympischen Spiele");
fenster.setSize( 600,400);
fenster.setLocation(200, 200);
fenster.setVisible( true );
fenster.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
//import com.toedter.calendar.JDateChooser;
public class NeuAnlegen extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) {
NeuAnlegen fenster2 = new NeuAnlegen();
fenster2.setTitle("neue Olympiade anlegen");
fenster2.setSize( 400, 200 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public NeuAnlegen(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("Erfassen");
JButton b2 = new JButton("Abbrechen");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
// ActionListener lis = new Schliessen();//??????
// b2.addActionListener( lis );
p2 = new JPanel( new GridLayout(7,2) );
p2.add(new JLabel("Austragungsort: ")); p2.add(new JTextField());
p2.add(new JLabel("Austragungsjahr: ")); p2.add(new JTextField());
p2.add(new JLabel("Sommer- oder Winterspiel: ")); p2.add(new JTextField());
// p2.add(new JDateChooser());
// datum.setDate(new Date());
// xyz.add(datum);
p2.add(new JLabel("Olympiade: ")); p2.add(new JTextField());
p2.add(new JLabel("Datum Eröffnungsfeier: ")); p2.add(new JTextField());
p2.add(new JLabel("Datum Abschlussfeier: ")); p2.add(new JTextField());
p2.add(new JLabel("Schrimherr: ")); p2.add(new JTextField());
c.add(p2);
}
} [/Java]
[Java] import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class vorhanden extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) {
vorhanden fenster2 = new vorhanden();
fenster2.setTitle("Achtung!");
fenster2.setSize( 300, 200 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public vorhanden(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("OK");
JButton b2 = new JButton("Zurück");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
p2 = new JPanel( new GridLayout() );
p2.add(new JLabel("Olympisches Spiel bereits vorhanden. ", JLabel.CENTER));
c.add(p2);
}
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class löschen extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Löschen")) {
löschen fenster2 = new löschen();
fenster2.setTitle("Achtung!");
fenster2.setSize( 300, 150 );
fenster2.setLocation(100, 100);
fenster2.setVisible( true );
}
}
public löschen(){
Container c = getContentPane();
JPanel p1, p2;
JButton b1 = new JButton("Ja");
JButton b2 = new JButton("Nein");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
p1.add( b2 );
c.add( p1, BorderLayout.SOUTH );
// ActionListener lis = new Schliessen();//?????
// b1.addActionListener( lis );
//
// ActionListener lis2 = new Schliessen();
// b2.addActionListener( lis2 );
p2 = new JPanel( new GridLayout() );
p2.add(new JLabel("Wollen Sie diesen Datensatz wirklich löschen? ", JLabel.CENTER));
c.add(p2);
}
// public void actionPerformed1(ActionEvent f) {
// if (f.getActionCommand().equals("Nein")) {
// Schliessen();
// }
// }
} [/Java]
[Java]
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class Übersicht extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Neu")) { //!!!!!!!!!!!!!!!
Übersicht fenster2 = new Übersicht();
fenster2.setTitle("Übersicht");
fenster2.setSize( 600, 400 );
fenster2.setLocation(200, 150);
fenster2.setVisible( true );;
}
}
public Übersicht(){
Container c = getContentPane();
JPanel p1;
JButton b1 = new JButton("Zurück");
p1 = new JPanel( new FlowLayout() );
p1.add(b1);
c.add( p1, BorderLayout.SOUTH );
}
Container d = getContentPane(); //Tabelle !!!!!!!!!!!!!
String[] columnNames = { "Stadt", "Land", "Einwohnerzahl" };
String[][] rowData = { { "Zürich", "CH ", "371000" },
{ "Bern", "CH ", "128000" }, { "Werdenberg", "CH ", "90" },
{ "Berlin", "DE ", "3400000" }};
JTable tab = new JTable( rowData, columnNames );
} [/Java]
[Java]
//
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import javax.swing.*;
//
// public abstract class Schliessen extends JFrame implements ActionListener{
//
// public Schliessen(){
// setVisible(false);
//
// }
//
//
// } [/Java]
soo, das wars..wie gesagt nicht gerade wenig aber ich bin echt hilflos und weiß nicht weiter
danke schonmal an alle!
Gruß, Julia
Zuletzt bearbeitet von einem Moderator: