import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.*;
import javax.swing.JFrame;
public class StundenGUI extends JFrame {
Label datum_label, stunden_label, summe_label, lohn_label, brutto_label;
TextField summe_field, lohn_field, brutto_field;
Button berechnen_button, ende_button, fenster_button;
class Berechnen implements ActionListener {
public void actionPerformed(ActionEvent e) {
String titel, tmp_summe, tmp_lohn;
double summe, lohn, brutto;
titel = e.getActionCommand();
if (titel.equals(" Ende ")) {
System.exit(0);
}
if (titel.equals(" Berechnen ")) {
tmp_summe = summe_field.getText();
summe = Double.parseDouble(tmp_summe);
tmp_lohn = lohn_field.getText();
lohn = Double.parseDouble(tmp_lohn);
brutto = summe * lohn;
brutto_field.setText("" + brutto);
}
if (titel.equals(" Fenster Öffnen ")) {
JFrame fenster = new JFrame("Fenstertitel");
fenster.pack();
fenster.setVisible(true);
fenster.setSize(300, 300);
}
}
}
StundenGUI(String titel) {
super(titel);
Date dt = new Date();
datum_label = new Label(" Datum : " + dt);
datum_label.setBounds(30, 30, 250, 30);
stunden_label = new Label("Summe der Arbeits Stunden : ");
stunden_label.setBounds(30, 80, 180, 30);
summe_field = new TextField();
summe_field.setBounds(250, 85, 100, 17);
lohn_label = new Label(" Stunden Lohn :");
lohn_label.setBounds(30, 120, 120, 30);
lohn_field = new TextField();
lohn_field.setBounds(250, 125, 100, 17);
brutto_label = new Label(" Brutto Lohn :");
brutto_label.setBounds(30, 170, 100, 17);
brutto_field = new TextField();
brutto_field.setBounds(250, 170, 100, 17);
berechnen_button = new Button(" Berechnen ");
berechnen_button.setBounds(30, 250, 100, 30);
ende_button = new Button(" Ende ");
ende_button.setBounds(250, 250, 100, 30);
fenster_button = new Button(" Fenster Öffnen ");
fenster_button.setBounds(140, 280, 100, 30);
add(fenster_button);
add(ende_button);
add(berechnen_button);
add(brutto_field);
add(brutto_label);
add(lohn_field);
add(lohn_label);
add(summe_field);
add(datum_label);
add(stunden_label);
setLayout(null);
ende_button.addActionListener(new Berechnen());
berechnen_button.addActionListener(new Berechnen());
fenster_button.addActionListener(new Berechnen());
}
}
Was heißt "bearbeiten"? Das zweite fenster unterscheidet sich durch nichts vom ersten, fünften oder 15635123761ten Fenster, wieso "bearbeitest" du es nicht einfach genauso wie das erste????:LNur die Frage ist wie bearbeite ich den neuen Fenster? Muß ich dafür eine separate Klasse machen ?
[...]
public class TestTest extends JFrame implements ActionListener{
public static void main (String [] args){
new TestTest();
}
JButton press;
TestTest(){
super ("Altes Fenster");
press = new JButton ("Neues Fenster öffnen");
press.addActionListener(this);
this.add(press);
this.pack();
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
JFrame neu = new JFrame("Neues Fenster");
neu.add(new JLabel("Ich bin das neue Fenster!"));
neu.pack();
neu.setVisible(true);
}
}
Was heißt "bearbeiten"? Das zweite fenster unterscheidet sich durch nichts vom ersten, fünften oder 15635123761ten Fenster, wieso "bearbeitest" du es nicht einfach genauso wie das erste????:L
Hallo, grunsätzlich geht das ganz genauso wie mit dem normalen Fenster
Java:[...] public class TestTest extends JFrame implements ActionListener{ public static void main (String [] args){ new TestTest(); } JButton press; TestTest(){ super ("Altes Fenster"); press = new JButton ("Neues Fenster öffnen"); press.addActionListener(this); this.add(press); this.pack(); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { JFrame neu = new JFrame("Neues Fenster"); neu.add(new JLabel("Ich bin das neue Fenster!")); neu.pack(); neu.setVisible(true); } }
Ich versteh' die Frage jetzt noch weniger als vorher...nein was ich meine kann ich das als eine neue klasse bei Eclipse bearbeiten ?
Ich versteh' die Frage jetzt noch weniger als vorher...
Hindert dich momentan irgendwas daran, "File->New->Class" anzuklicken und dort zu "bearbeiten" was auch immer du willst?
public class A extends JFrame {
JButton press;
public A() {
super("Objekt der Klasse A");
press = new JButton("Objekt der Klasse B öffnen!");
press.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new B();
}
});
this.add(press);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new A();
}
}
class B extends JFrame {
B() {
super("Objekt der Klasse B");
this.setSize(200, 200);
this.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.*;
import javax.swing.JFrame;
public class StundenGUI extends JFrame {
Label datum_label, stunden_label, summe_label, lohn_label, brutto_label;
TextField summe_field, lohn_field, brutto_field;
Button berechnen_button, ende_button, fenster_button;
class Berechnen implements ActionListener {
public void actionPerformed(ActionEvent e) {
String titel, tmp_summe, tmp_lohn;
double summe, lohn, brutto;
titel = e.getActionCommand();
if (titel.equals(" Ende ")) {
System.exit(0);
}
if (titel.equals(" Berechnen ")) {
tmp_summe = summe_field.getText();
summe = Double.parseDouble(tmp_summe);
tmp_lohn = lohn_field.getText();
lohn = Double.parseDouble(tmp_lohn);
brutto = summe * lohn;
brutto_field.setText("" + brutto);
}
if (titel.equals(" Fenster Öffnen ")) {
JFrame fenster = new JFrame("Fenstertitel");
fenster.pack();
fenster.setVisible(true);
fenster.setSize(300, 300);
}
}
}
StundenGUI(String titel) {
super(titel);
Date dt = new Date();
datum_label = new Label(" Datum : " + dt);
datum_label.setBounds(30, 30, 250, 30);
stunden_label = new Label("Summe der Arbeits Stunden : ");
stunden_label.setBounds(30, 80, 180, 30);
summe_field = new TextField();
summe_field.setBounds(250, 85, 100, 17);
lohn_label = new Label(" Stunden Lohn :");
lohn_label.setBounds(30, 120, 120, 30);
lohn_field = new TextField();
lohn_field.setBounds(250, 125, 100, 17);
brutto_label = new Label(" Brutto Lohn :");
brutto_label.setBounds(30, 170, 100, 17);
brutto_field = new TextField();
brutto_field.setBounds(250, 170, 100, 17);
berechnen_button = new Button(" Berechnen ");
berechnen_button.setBounds(30, 250, 100, 30);
ende_button = new Button(" Ende ");
ende_button.setBounds(250, 250, 100, 30);
fenster_button = new Button(" Fenster Öffnen ");
fenster_button.setBounds(140, 280, 100, 30);
add(fenster_button);
add(ende_button);
add(berechnen_button);
add(brutto_field);
add(brutto_label);
add(lohn_field);
add(lohn_label);
add(summe_field);
add(datum_label);
add(stunden_label);
setLayout(null);
ende_button.addActionListener(new Berechnen());
berechnen_button.addActionListener(new Berechnen());
fenster_button.addActionListener(new Berechnen());
}
}
Ohne jetz den Quellcode studiert zu haben...
du erzeugst doch sicher eine neue Instanz des neuen Fensters, nicht? Instanzname.add() oder wie auch immer ;-)
Edit:
Ich habe jetzt doch noch kurz alles angeschaut... dein Objekt heisst ja fenster in dem Fall. Also kannst du im Prinzip alle Methoden verwenden wie bei einem normalen Fenster. fenster.add(), fenster.remove(). Aber wenn das zweite Fenster aufwändiger wird, auch vom Layout her gesehen, würde ich dir raten eine zweite Klasse zu erstellen, die von JFrame erbt.
public class A extends JFrame implements ActionListener {
JButton button;
public A() {
button = new JButton("Neues Fenster öffnen");
button.addActionListener(this);
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(button);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new A();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button)) {
JFrame neu = new JFrame("Hier ist das neue Fenster");
neu.setLayout(new FlowLayout());
neu.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
neu.add(new JButton("blablabla"));
neu.add(new JTextField("ich bin ein JTextField"));
neu.pack();
neu.setVisible(true);
}
}
}
public class A extends JFrame implements ActionListener {
JButton button;
public A() {
button = new JButton("Neues Fenster öffnen");
button.addActionListener(this);
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(button);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new A();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(button)) {
new B();
}
}
}
class B extends JFrame {
JButton button;
JTextField textField;
public B() {
button = new JButton("....");
textField = new JTextField("test");
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.add(button);
this.add(textField);
this.pack();
this.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class StundenGUI extends JFrame {
Label datum_label, stunden_label, summe_label, lohn_label, brutto_label;
TextField summe_field, lohn_field, brutto_field;
Button berechnen_button, ende_button, fenster_button;
class Berechnen implements ActionListener {
public void actionPerformed(ActionEvent e) {
String titel, tmp_summe, tmp_lohn;
double summe, lohn, brutto;
titel = e.getActionCommand();
if (titel.equals(" Ende ")) {
System.exit(0);
}
if (titel.equals(" Berechnen ")) {
tmp_summe = summe_field.getText();
summe = Double.parseDouble(tmp_summe);
tmp_lohn = lohn_field.getText();
lohn = Double.parseDouble(tmp_lohn);
brutto = summe * lohn;
brutto_field.setText("" + brutto);
}
if (titel.equals(" Fenster Öffnen ")) {
JFrame fenster2= new JFrame(" Mein 2.Fenster");
fenster2.setSize(400,400);
fenster2.setVisible(true);
fenster2.setLayout(null);
Label label = new Label("Mein 2.Fenster");
label.setBounds(250,250,100,100);
fenster2.add(label);
}
}
}
StundenGUI(String titel) {
super(titel);
Date dt = new Date();
datum_label = new Label(" Datum : " + dt);
datum_label.setBounds(30, 30, 250, 30);
stunden_label = new Label("Summe der Arbeits Stunden : ");
stunden_label.setBounds(30, 80, 180, 30);
summe_field = new TextField();
summe_field.setBounds(250, 85, 100, 17);
lohn_label = new Label(" Stunden Lohn :");
lohn_label.setBounds(30, 120, 120, 30);
lohn_field = new TextField();
lohn_field.setBounds(250, 125, 100, 17);
brutto_label = new Label(" Brutto Lohn :");
brutto_label.setBounds(30, 170, 100, 17);
brutto_field = new TextField();
brutto_field.setBounds(250, 170, 100, 17);
berechnen_button = new Button(" Berechnen ");
berechnen_button.setBounds(30, 250, 100, 30);
ende_button = new Button(" Ende ");
ende_button.setBounds(250, 250, 100, 30);
fenster_button = new Button(" Fenster Öffnen ");
fenster_button.setBounds(140, 280, 100, 30);
add(fenster_button);
add(ende_button);
add(berechnen_button);
add(brutto_field);
add(brutto_label);
add(lohn_field);
add(lohn_label);
add(summe_field);
add(datum_label);
add(stunden_label);
setLayout(null);
ende_button.addActionListener(new Berechnen());
berechnen_button.addActionListener(new Berechnen());
fenster_button.addActionListener(new Berechnen());
}
}
Meiner Meinung nach schon, das macht das ganze übersichtlicher![]()
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
class B extends JFrame {
JButton button;
JTextField textField;
public B() {
button = new JButton("....");
textField = new JTextField("test");
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.add(button);
this.add(textField);
this.pack();
this.setVisible(true);
}
}
if (titel.equals(" 4.Fenster Öffnen ")) {
new B();
}