Eigenes Fenster

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi!
Ich will ein Fenster zu meinem Programm schreiben, in dem ich so arbeiten kann, wie im Hauptfenster, sprich Label, TextField usw. Wie kann ich das machen?

thx
 

Leroy42

Top Contributor
Du kannst problemlos ein weiteres JFrame nehmen, das dann
allerdings kein setDefaultCloseOperation(EXIT_ON_CLOSE)
bekommen sollte.

Du kannst dir auch ein JDialog nach Belieben zusammenschustern.
 
G

Guest

Gast
Aber in JDialog's kann ich doch nur angeben, ob es eine Warnung, Information usw oder welche Buttons da sein sollen. Und natürlich noch den Text.
Aber wie kann ich zB ein TextField einfügen?
 

The_S

Top Contributor
Was du meinst ist ein JOptionPane. Ein JDialog verhält sich genauso (bis auf ein paar Kleinigkeiten) wie ein JFrame. Einfach über das contentPane adden.
 
G

Guest

Gast
Okee, ich hab jetzt ein ganz einfachen JDialog erstellt. Aber kann ich mit ActionPerformed den JDialog per

show JDialog save;

aufrufen?
 
G

Guest

Gast
Natürlich!!! :autsch:

Doofheit...


Angezeigt wirds aber trotzdem noch nich. Vielleicht auch einfach wegen dem JDialog. Der is nähmlich

save = new JDialog("Hallo");
 

Jango

Gesperrter Benutzer
Der Konstruktor von JDialog verlangt ein Objekt der Elternklasse also von JFrame

Code:
JDialog xyz=new JDialog(JFrame owner);
  xyz.setVisible(true);

glaub ich zumindest...
 
G

Guest

Gast
Es funktioniert immer noch nicht! :bahnhof:

Liegts am JFrame owner, weil ich hab den so übernommen... ???:L
 

Jango

Gesperrter Benutzer
Das sollte nur heißen, dass da ein Objekt von JFrame rein soll:

Code:
JDialog xyz=new JDialog(new JFrame("Ich bin ein Fenster"));
 
G

Guest

Gast
SOS!!!

OOOOOOOOOOOOjeee!

1. Tschuldigung, das mit dem kompilieren hat net geklappt, weil ich woanders gespeichert hab. Deswegen au keine Fehlermeldung.

2. Sch....! Jetzt streicht der mir mein ganzes Menü an! Nur wenn ich das save = new JDialog usw wegnehm, erscheinen angeblich 9 errors!!!
 
G

Guest

Gast
okay, etwas "gewurstel" und ich hab eine ursprüngliche Datei wieder. Hab einfach dekompiliert.
 
G

Guest

Gast
Hi! Ich kann jetzt ein Fenster öffnen. Ich hab die Größe auf 50,50 eingestellt. Das funktioniert alles. Jetzt wollte ich einen Button adden, da sagt er, dass er xyz nicht findet. Also hab ich mit private xyz "bekanntgemacht". ABer jetzt renne ich in eine NullPointerException. Wieso das? :?:
 
G

Guest

Gast
Code:
JDialog xyz = new JDialog();
xyz.setVisible(true);
xyz.setSize(50,50);

So sah der Code aus.

Dann hab ich ihn umgeändert:

Code:
private JDialog xyz;

...
...

xyz = new JDialog();
xyz.setVisible(true);
xyz.setSize(50,50);
 
G

Guest

Gast
Entschuldigung, hab mich getäuscht. Sie wird nicht wegen dem private-Eintrag, sondern erst, wenn ich versuche, zB einen Button zu adden geworfen.
 

hupfdule

Top Contributor
Jetzt stell dich mal nicht so an. Wenn du Fehler bekommst, schreib die genaue Fehlermeldung hier hin. Und dann die relevanten Codeabschnitte. Sonst kann dir keiner helfen.

Bei welcher Zeile kommt die NPE?
Ins Blaue: Dein Button ist null.
 
G

Guest

Gast
Ja ja, also erstmal der Button:

Code:
test = new JButton("TEST-TEST-TEST");
xyz.add(test);
add(BorderLayout.SOUTH,xyz);
test.addActionListener(this);
test.setPreferredSize(new Dimension(50, 50));

Der JDialog steht ja schon oben. ???:L
 
G

Guest

Gast
Die Fehlermeldung:

Code:
Exception in thread "main" java.lang.NullPointerException
             at Writer.makeGui(Writer.java:423)
             at Writer.<init><Writer.java:106)
             at Writer.main(Writer.java:90)
 
G

Guest

Gast
Gegen noch mehr gemecker:

Der Code:

Code:
/* JWriter 1.0, made by J T, (c) 2006, this product is official freeware, 
German Edition */


import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Writer extends Frame
        implements WindowListener, ActionListener, KeyListener, MouseListener {

//Die privates

  private String     dname="Textdokument.txt";
  private String                dname2="1,10";
  private String       dname3="Sicherung.txt";
  private Panel                           top;
  private JTextArea               eingabeFeld;
  private TextField                     datei;
  private Button                    speichern;
  private PrintWriter            ausgabeDatei;
  private Button                         Test;
  private Panel                        bottom;
  private Button                          Neu;
  private Panel                             z;
  private Button                        About;
  private Button                        Datei;
  private Panel                      settings;
  private TextField                        SG;
  private Button                            G;
  private Button                            K;
  private Color                        Farbe1;
  private Color                        Farbe2;
  private Color                        Farbe3;
  private Color                          Rot1;
  private Color                          Rot2;
  private Color                          Rot3;
  private Color                         Grau1;
  private Color                         Grau2;
  private Button                         Help;
  private Button                       kursiv;
  private JMenuItem                      ende;
  private JMenuItem                  ESchrift;
  private JMenuItem                      Eaus;
  private JMenuItem                   EDesign;
  private Panel                       Designs;
  private JButton                        DRot;
  private JButton                      DGruen;
  private JButton                       DBlau;
  private JButton                       DGelb;
  private JLabel                     hinweis1;
  private JButton               DRueckgaengig;
  private JLabel                     hinweis2;
  private JLabel                        leer1;
  private JLabel                     hinweis3;
  private JButton                       DRot3;
  private JButton                     DGruen3;
  private JButton                      DBlau3;
  private JButton                      DGelb3;
  private JButton                   DSchwarz3;
  private JMenuItem                     about;
  private JMenuItem            Programmierung;
  private JMenuItem                   oeffnen;
  private boolean          isModified = false;
  int                              buchstaben;
  int                             woerter = 0;
  int                             dieEins = 1;
  int                                ergebnis;
  private JLabel                     hinweis4;
  private JTextField               designFeld;
  private JButton                      Frage1;
  private JLabel                        leer2;
  private ImageIcon                      ques;
  private JLabel                   anschlaege;
  private JButton                     Rechner;
  private JButton                         xxx;
  private boolean                 gray = true;
  private JDialog                         xyz;




public static void main(String [] args) {


// Die Einstellungen

    Writer test = new Writer();
    test.setUndecorated(false);     //Einstellung, um das Windows-Fenster zu entfernen.
    test.setVisible(true);
    test.setTitle("JWriter");
    test.setForeground(Color.BLACK);
    test.setLocation(50,50);
    test.setCursor(HAND_CURSOR);
	test.setBackground(Color.lightGray);
	test.pack();


  }

// Der Konstruktor

    Writer() {
    makeGui();
    addWindowListener(this);
  }



public void makeGui() {

//Die Panels

    z = new Panel();
    settings = new Panel();
    settings.setLayout(new GridLayout(0,2));
    settings.setVisible(true);
    top = new Panel();
    Designs = new Panel();
    Designs.setVisible(true);
    Designs.setLayout(new FlowLayout(FlowLayout.LEFT));
    Designs.setPreferredSize(new Dimension(300, 300));

//Die Elemente fürs Speichern


    speichern = new Button("Text speichern");
    speichern.setBackground(Color.lightGray);
    top.add(speichern);
	speichern.addMouseListener(this);
    speichern.addActionListener(this);
    datei= new TextField(dname,20);
    datei.setBackground(Color.lightGray);
	datei.addMouseListener(this); 
    top.add(datei);
    add(BorderLayout.NORTH,top);
	

//Die Icons und Bilder

    ImageIcon save = new ImageIcon( "save.gif" );
	ImageIcon ques = new ImageIcon( "question.gif" );



//Hier die zu definierenden Farben:

 Farbe1 = new Color (128, 255, 255);
 Farbe2 = new Color (0  , 128, 128);
 Farbe3 = new Color (130, 240, 240);
 
 //VulcanoDesign
  Rot1 = new Color (184,  52 , 33 );
  Rot2 = new Color (255, 111 , 89 );
  Rot3 = new Color (248, 242 , 31 );
  
 //Eingabefeld
  Grau1 = new Color (174, 177, 179);
  Grau2 = new Color (162, 165, 166);  



//Das Eingabefeld

    eingabeFeld = new JTextArea(10,30);
    add(BorderLayout.CENTER,eingabeFeld);
    eingabeFeld.setBackground(Grau1);
    eingabeFeld.setForeground(Color.BLACK);
	eingabeFeld.addKeyListener(this);
	eingabeFeld.addMouseListener(this);


//Einige Zusatz -Buttons, -TextFields, -Menüs und Sonstiges

    String filename = "icon.gif";
    Image image = Toolkit.getDefaultToolkit().getImage( filename );
    setIconImage  ( image );
	


    Test = new Button("Writer schließen");
    top.add(Test);
    add(BorderLayout.SOUTH,top);
    Test.setBackground(Color.lightGray);
    Test.addActionListener(this);



    Neu = new Button("Neu");
    z.add(Neu);
    add(BorderLayout.NORTH,z);
    Neu.setBackground(Color.lightGray);
    Neu.addActionListener(this);
	


    About = new Button("{about}");
    z.add(About);
    add(BorderLayout.NORTH,z);
    About.setBackground(Color.lightGray);
	About.addActionListener(this);



    G = new Button("GROSSE SCHRIFTGRÖSSE");
    settings.add(G);
    add(BorderLayout.EAST,settings);
    G.setBackground(Color.lightGray);
    G.addActionListener(this);



    K = new Button("kleine schriftgröße");
    settings.add(K);
    add(BorderLayout.EAST,settings);
    K.setBackground(Color.lightGray);
    K.addActionListener(this);
	
	
	

    Help = new Button("Hilfe");
    settings.add(Help);
    add(BorderLayout.EAST,settings);
    Help.setBackground(Color.lightGray);
    Help.addActionListener(this);



    kursiv = new Button("K");
    settings.add(kursiv);
    add(BorderLayout.EAST,settings);
    kursiv.setBackground(Color.lightGray);
    kursiv.addActionListener(this);
    eingabeFeld.setFont(new Font("Comic Sans MS", Font.ITALIC, 10));



    hinweis1 = new JLabel();
    hinweis1.setText("Stellen Sie die Farbe des Textfeldes ein:");
    Designs.add(hinweis1);
    add(BorderLayout.EAST,Designs);
    hinweis1.setPreferredSize(new Dimension(250, 20));



    DRot = new JButton("R");
    Designs.add(DRot);
    add(BorderLayout.EAST,Designs);
    DRot.setBackground(Color.RED);
    DRot.addActionListener(this);
    DRot.setPreferredSize(new Dimension(50, 20));
	DRot.setOpaque(true);



    DGruen = new JButton("G");
    Designs.add(DGruen);
    add(BorderLayout.EAST,Designs);
    DGruen.setBackground(Color.GREEN);
    DGruen.addActionListener(this);
    DGruen.setPreferredSize(new Dimension(50, 20));
	DGruen.setOpaque(true);




    DBlau = new JButton("B");
    Designs.add(DBlau);
    add(BorderLayout.EAST,Designs);
    DBlau.setBackground(Color.BLUE);
    DBlau.addActionListener(this);
    DBlau.setPreferredSize(new Dimension(50, 20));
	DBlau.setOpaque(true);




    DGelb = new JButton("G");
    Designs.add(DGelb);
    add(BorderLayout.EAST,Designs);
    DGelb.setBackground(Color.YELLOW);
    DGelb.addActionListener(this);
    DGelb.setPreferredSize(new Dimension(50, 20));
	DGelb.setOpaque(true);



    DRueckgaengig = new JButton("Rückgängig");
    Designs.add(DRueckgaengig);
    add(BorderLayout.EAST,Designs);
    DRueckgaengig.setBackground(Color.lightGray);
    DRueckgaengig.addActionListener(this);
	DRueckgaengig.setOpaque(true);


	
	hinweis3 = new JLabel();
    hinweis3.setText("Stellen Sie die Farbe der Schrift ein:");
    Designs.add(hinweis3);
    add(BorderLayout.EAST,Designs);
    hinweis3.setPreferredSize(new Dimension(300, 20));
	
	
	
	DRot3 = new JButton("R");
    Designs.add(DRot3);
    add(BorderLayout.EAST,Designs);
    DRot3.setBackground(Color.RED);
    DRot3.addActionListener(this);
    DRot3.setPreferredSize(new Dimension(50, 20));
	DRot3.setOpaque(true);



    DGruen3 = new JButton("G");
    Designs.add(DGruen3);
    add(BorderLayout.EAST,Designs);
    DGruen3.setBackground(Color.GREEN);
    DGruen3.addActionListener(this);
    DGruen3.setPreferredSize(new Dimension(50, 20));
	DGruen3.setOpaque(true);




    DBlau3 = new JButton("B");
    Designs.add(DBlau3);
    add(BorderLayout.EAST,Designs);
    DBlau3.setBackground(Color.BLUE);
    DBlau3.addActionListener(this);
    DBlau3.setPreferredSize(new Dimension(50, 20));
	DBlau3.setOpaque(true);
	
	
	
	
	DGelb3 = new JButton("G");
	Designs.add(DGelb3);
	add(BorderLayout.EAST,Designs);
	DGelb3.setBackground(Color.YELLOW);
    DGelb3.addActionListener(this);
    DGelb3.setPreferredSize(new Dimension(50, 20));
	DGelb3.setOpaque(true);
	
	
	
    DSchwarz3 = new JButton("S");
	Designs.add(DSchwarz3);
	add(BorderLayout.EAST,Designs);
	DSchwarz3.setBackground(Color.BLACK);
	DSchwarz3.setForeground(Color.WHITE);
    DSchwarz3.addActionListener(this);
    DSchwarz3.setPreferredSize(new Dimension(50, 20));
	DSchwarz3.setOpaque(true);
	
	
	
	leer1 = new JLabel();
    leer1.setText("_________________________");
    Designs.add(leer1);
    add(BorderLayout.EAST,Designs);
    leer1.setForeground(Color.lightGray);
    leer1.setPreferredSize(new Dimension(250, 20));
	
	
	
	hinweis3 = new JLabel();
    hinweis3.setText("Die Schriftfarbe ist schwarz.");
    Designs.add(hinweis3);
    add(BorderLayout.EAST,Designs);
    hinweis3.setPreferredSize(new Dimension(300, 20));
	
	
	
	designFeld= new JTextField();
    designFeld.setBackground(Color.lightGray);
    Designs.add(designFeld);
    add(BorderLayout.EAST,Designs);
	designFeld.setPreferredSize(new Dimension(20, 20));
	designFeld.addKeyListener(this);
	
	
	
	leer2 = new JLabel();
    leer2.setText("                  ");
    Designs.add(leer2);
    add(BorderLayout.EAST,Designs);
    leer2.setForeground(Color.lightGray);
    leer2.setPreferredSize(new Dimension(210, 20));
	
	
	
	Frage1 = new JButton("");
	Designs.add(Frage1);
	add(BorderLayout.EAST,Designs);
    Frage1.addActionListener(this);
    Frage1.setPreferredSize(new Dimension(20, 20));
	Frage1.setIcon(ques);
	Frage1.setOpaque(true);
	
	
	
	anschlaege = new JLabel();
    anschlaege.setText("Anschläge");
    Designs.add(anschlaege);
    add(BorderLayout.EAST,Designs);
    anschlaege.setForeground(Color.lightGray);
    anschlaege.setPreferredSize(new Dimension(210, 140));
	
	
	
	Rechner = new JButton("Taschenrechner...");
	top.add(Rechner);
	add(BorderLayout.SOUTH,top);
    Rechner.addActionListener(this);
	
	
	
	xxx = new JButton("");
	xyz.add(xxx);
	add(BorderLayout.SOUTH,xyz);
    xxx.addActionListener(this);
	xxx.setPreferredSize(new Dimension(1, 1));
	
	
	
	xyz = new JDialog();
    xyz.setVisible(true);
    xyz.setSize(50,50);
	
	
	
//Das Menü am oberen Applikationsrand

JMenuBar hauptMenue = new JMenuBar();
JMenu menue1 = new JMenu("Datei");
JMenu menue2 = new JMenu("Programmbedienung");
JMenu menue3 = new JMenu("Hilfe");
JMenu menue4 = new JMenu("About");
JMenu menue5 = new JMenu("Erweiterte Einstellungen");




oeffnen = new JMenuItem("Öffnen");
oeffnen.setBackground(Color.GRAY);
oeffnen.setOpaque(true);
oeffnen.addActionListener(this);
menue1.add(oeffnen);

menue1.addSeparator();
ende = new JMenuItem("Ende");
ende.addActionListener(this);
menue1.add(ende);


menue2.add("Designs");



menue3.add("Hilfe im Eingabefeld");
menue3.addSeparator();
about = new JMenuItem("About");
about.addActionListener(this);
menue3.add(about);
menue3.add("FAQ");
menue3.add("Kontakt");

menue4.add("Version");
Programmierung = new JMenuItem("Programmierung");
Programmierung.addActionListener(this);
menue4.add(Programmierung);

ESchrift = new JMenuItem("Schrifteinstellungen einblenden");
ESchrift.addActionListener(this);
menue5.add(ESchrift);
EDesign = new JMenuItem("Designeinstellungen einblenden");
EDesign.addActionListener(this);
menue5.add(EDesign);
menue5.addSeparator();
Eaus = new JMenuItem("Einstellungen ausblenden");
Eaus.setBackground(Color.YELLOW);
Eaus.addActionListener(this);
menue5.add(Eaus);



hauptMenue.add(menue1);
hauptMenue.add(menue2);
hauptMenue.add(menue3);
hauptMenue.add(menue5);


}

public void preparedExit() {
   if(isModified) {
	  int answer = JOptionPane.showConfirmDialog(this,
      "Möchten Sie ungesicherte Daten vor dem Beenden noch speichern?",
      "JWriter beenden",
      JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
     
      switch(answer) {
         case JOptionPane.CANCEL_OPTION:
            return; //Rückkehr ins Programm                       
         case JOptionPane.YES_OPTION:
            //Hier Methodenaufruf oder Code für Speichern einfügen.
            System.out.println("Daten wurden gespeichert.");
         case JOptionPane.NO_OPTION:
          //hier braucht nichts stehen, das Programm wird ohne Speichern geschlossen.
      }
   }
                  
   System.exit(0);
}

//Die ActionListener

public void windowClosing(WindowEvent ev) {
    preparedExit();
	
    System.exit(0);
  }

public void mouseEntered(MouseEvent ev) {
 
if (ev.getSource() == datei) { 
    datei.setBackground(Color.YELLOW);
	speichern.setBackground(Color.RED);
  }
  
if (ev.getSource() == speichern) { 
    datei.setBackground(Color.YELLOW);
	speichern.setBackground(Color.RED);
  }

if (ev.getSource() == eingabeFeld && gray) {
  eingabeFeld.setBackground(Grau2);
  }
}

public void mouseExited(MouseEvent ev) {

if (ev.getSource() == datei) {
    datei.setBackground(Color.lightGray);
    speichern.setBackground(Color.lightGray);	
  }
  
if (ev.getSource() == speichern) {
    datei.setBackground(Color.lightGray);
    speichern.setBackground(Color.lightGray);	
  }
  
if (ev.getSource() == eingabeFeld && gray) {
  eingabeFeld.setBackground(Grau1);
  }
}


public void keyReleased(KeyEvent ev)
{
    isModified = true;
	ergebnis = (woerter++);
  
  
 {
if (ev.getKeyCode() == KeyEvent.VK_LEFT && ev.getSource() == designFeld) {
    eingabeFeld.setBackground(Rot1);
	setBackground(Rot2);
	eingabeFeld.setForeground(Rot3);
	JOptionPane.showMessageDialog(this,
    "<html>[b]<u>Vulcano</u>[/b]

Sie haben das Design auf VulcanoDesign eingestellt.</html>",
    "Vulcano",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
if (ev.getKeyCode() == KeyEvent.VK_X && ev.getSource() == designFeld) {
	JOptionPane.showMessageDialog(this,
    "<html>[b]<u>Raffiniert!</u>[/b]

Sie haben das geheime Spiel freigeschaltet!!!</html>",
    "SECRET",
   JOptionPane.WARNING_MESSAGE);
  }
 }
 
if (ev.getKeyCode() == KeyEvent.VK_SPACE && ev.getSource() == eingabeFeld) {

     try {
          /* Zuerst wir eine Instanz von Writer gebildet:
             sie schreibt Zeichen in eine Ausgabedatei
             true: neue Daten werden angehängt!

             PrintWriter:zeilenorientierte Ausgabe der Zeichen
             wird vorher erzeugt
          */

          ausgabeDatei = new PrintWriter (new FileWriter(dname3, false));
          ausgabeDatei.print(eingabeFeld.getText() + ".txt" );
          ausgabeDatei.close();
     }
     catch (IOException e) {
          System.err.println("Dateifehler "+e.toString() );
/*-------------------------------------------------------------------
 * Der Aufruf von e.toString() ist unnötig, es reicht, e aufzurufen, die
 * Umwandlung passiert dann automatisch.
 *-------------------------------------------------------------------
 */
          System.exit(1);
     }
 }
}


  public void actionPerformed(ActionEvent event) {
   if (event.getSource() == speichern) {
     try {
          /* Zuerst wir eine Instanz von Writer gebildet:
             sie schreibt Zeichen in eine Ausgabedatei
             true: neue Daten werden angehängt!

             PrintWriter:zeilenorientierte Ausgabe der Zeichen
             wird vorher erzeugt
          */

          ausgabeDatei = new PrintWriter (new FileWriter(datei.getText(), false));
          ausgabeDatei.print(eingabeFeld.getText() + ".txt" );
          ausgabeDatei.close();
     }
     catch (IOException e) {
          System.err.println("Dateifehler "+e.toString() );
/*-------------------------------------------------------------------
 * Der Aufruf von e.toString() ist unnötig, es reicht, e aufzurufen, die
 * Umwandlung passiert dann automatisch.
 *-------------------------------------------------------------------
 */
          System.exit(1);
     }
   }


else if (event.getSource() == Neu) {
          eingabeFeld.setText("");
}

else if (event.getSource() == Help) {
          eingabeFeld.setText("JWRITER by Jan");

    }

else if (event.getSource() == K) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 15));

    }

else if (event.getSource() == G) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.PLAIN, 20));

    }


else if (event.getSource() == kursiv) {
          eingabeFeld.setFont (new Font("Comic Sans MS", Font.ITALIC, 20));

    }

else if (event.getSource() == ESchrift) {
          setSize(900,500);
		  Designs.setVisible(false);
          add(BorderLayout.EAST,settings);
          settings.setVisible(true);
          validate();
   }


else if (event.getSource() == DRot) {
          eingabeFeld.setBackground(Color.RED);
          hinweis1.setText("Sie haben die Farbe auf Rot geändert.");
		  gray = false;
   }

else if (event.getSource() == EDesign) {
          setSize(900,500);
		  settings.setVisible(false);
          Designs.setVisible(true);
          add(BorderLayout.EAST,Designs);
          validate();
   }


else if (event.getSource() == Eaus) {
          settings.setVisible(false);
          Designs.setVisible(false);
		  pack();
   }

else if (event.getSource() == DGruen) {
          eingabeFeld.setBackground(Color.GREEN);
          hinweis1.setText("Sie haben die Farbe auf Grün geändert.");
		  gray = false;
		  
   }

else if (event.getSource() == DBlau) {
          eingabeFeld.setBackground(Color.BLUE);
          hinweis1.setText("Sie haben die Farbe auf Blau geändert.");
		  gray = false;
   }

else if (event.getSource() == DGelb) {
          eingabeFeld.setBackground(Color.YELLOW);
          hinweis1.setText("Sie haben die Farbe auf Gelb geändert.");
		  gray = false;
   }

else if (event.getSource() == DRueckgaengig) {
          eingabeFeld.setBackground(Grau1);
          hinweis1.setText("Sie haben die Standardfarbe gewählt.");
		  gray = true;
   }

else if (event.getSource() == DGruen3) {
          eingabeFeld.setForeground(Color.GREEN);
		  hinweis3.setText("Sie haben die Schriftfarbe auf Grün geändert.");
   }

else if (event.getSource() == DBlau3) {
          eingabeFeld.setForeground(Color.BLUE);
          hinweis3.setText("Sie haben die Schriftfarbe auf Blau geändert.");
   }

else if (event.getSource() == DGelb3) {
          eingabeFeld.setForeground(Color.YELLOW);
          hinweis3.setText("Sie haben die Schriftfarbe auf Gelb geändert.");
  }
  
else if (event.getSource() == DRot3) {
		  eingabeFeld.setForeground(Color.RED);
          hinweis3.setText("Sie haben die Schriftfarbe auf Rot geändert.");
  }
  
else if (event.getSource() == DSchwarz3) {
          eingabeFeld.setForeground(Color.BLACK);
          hinweis3.setText("Sie haben die Schriftfarbe auf Schwarz geändert.");
  }
  
else if (event.getSource() == About) {
   JOptionPane.showMessageDialog(this,
   "<html>[b]JWriter Version 1.0[/b]

Programmiert von Jan</html>",
   "Info",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == Test) {
   preparedExit();
  }
  
else if (event.getSource() == ende) {
   preparedExit();
 }  
  
else if (event.getSource() == Programmierung) {
   JOptionPane.showMessageDialog(this,
   "<html><u>Programmierung</u>

Dieses Programm wurde mit Java geschrieben.</html>",
   "Programmierung",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == Frage1) {
   JOptionPane.showMessageDialog(this,
   "<html>[b]<u>Designs</u>[/b]

b = blueDesign
v = vulcanoDesign
s =         snowDesign
</html>",
   "Designs",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == xxx) {
   JOptionPane.showMessageDialog(this,
   "<html>[b]JWRITER[/b]

Anregungen: java-stylepad


Prorammierung: Luca Beurer-Kellner & Jan
Test: Luca Beurer-Kellner
</html>",
   "",
   JOptionPane.INFORMATION_MESSAGE);
  }
  
else if (event.getSource() == Rechner) {
   try {
         Runtime.getRuntime().exec( "Calc.exe" );
      } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
 }
}


public void windowOpened(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowClosed(WindowEvent e) { }
public void windowActivated(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowDeactivated(WindowEvent e) { }
public void keyPressed(KeyEvent ev) { }
public void keyTyped(KeyEvent ev) { }
public void mousePressed(MouseEvent ev) { }
public void mouseReleased(MouseEvent ev) { }
public void mouseClicked(MouseEvent ev) { }

} //  class
 

hupfdule

Top Contributor
Schwieriger Fall......

Mit "welcher Zeile" meinte ich, welche Zeile in dem von dir geposteten Code-Abschnitt (müsste ja dann irgendwas zwischen 1 und 5 sein).

Da ich deine Klasse Writer nicht kenne, weiß ich nicht, was Zeile 423 ist. Daher schreib noch mal, welche Zeile in obigen Codeabschnitten das ist.
 

hupfdule

Top Contributor
Anonymous hat gesagt.:
Gegen noch mehr gemecker:

*lach*

Leider ziehst du dir auch damit den Unmut zu. Ganze Klassen zu posten, ist in der Regel zu viel. Weil zu viel Code enthalten, der nicht relevant. Also schon nur Codeabschnitte, nur nicht ganz so spartanisch wie bisher.

Problem bleibt bestehen. Zeile 423 in deinem Code ist:
Code:
xxx = new JButton("");
Dort kann keine NPE auftreten. Und da mir das Lesen der gesamten Klasse zu viel ist (;-)), muss ich dich immer noch bitten zu sagen, welche Zeile denn nun den Fehler verursacht.
 
G

Guest

Gast
In
Code:
xyz.add(xxx);
was auch nicht verwunderlich ist, da dort ja der Fehler liegen müsste.

In
Code:
der Gui
was mich schon verwundert.

Und in
Code:
Writer test = new Writer();
Seltsam... :bahnhof:
 

hupfdule

Top Contributor
Jetzt kommen wir der Sache näher:

Code:
 xxx = new JButton(""); 
 xyz.add(xxx); 
 add(BorderLayout.SOUTH,xyz); 
 xxx.addActionListener(this); 
 xxx.setPreferredSize(new Dimension(1, 1));   
    
    
 xyz = new JDialog(); 
 xyz.setVisible(true); 
 xyz.setSize(50,50);

Guck dir den Ausschnitt mal an. Du greifst auf xyz zu, bevor du es initialisierst.


In
Code:
der Gui
was mich schon verwundert.

Und in
Code:
Writer test = new Writer();
Seltsam... :bahnhof:
Ähm, wie?
 

Jango

Gesperrter Benutzer
Was soll eigentlich dieser ganze "xyz"-Quatsch? Nenne deine Variablen mal anständig. Das kann doch keiner lesen.

Nun:

Du weist einer Instanzvariablen Namens test ein JButton-Objekt zu?
Eine Objektdeklaration für einen JButton sieht so aus:

Code:
JButton butti = new JButton("KLICK_MICH");

oder:

Code:
JButton butti;
butti=new JButton("KLICK_MICH);

dann kannst du den auch dazu 'adden'.

Oder hab ich jetzt was falsches verstanden? :?:
 
G

Guest

Gast
jango hat gesagt.:

Natürlich nenne ich meine Variablen später richtig, ich dachte es sei einfacher, da jemand vorne im Thread angegeben hat, der JDialog würde xyz heißen. Ich habe jetzt vertauscht. Es sieht so aus:

Code:
Go = new JButton("Los");
add(BorderLayout.SOUTH, save);
save.add(Go);
Go.addActionListener(this);
Go.setPreferredSize(new Dimension(50,50));

Funktionieren tuts aber immernoch nicht.
 
G

Guest

Gast
Upps, so isses besser:

Code:
	xyz = new JDialog();
    xyz.setVisible(true);
    xyz.setSize(50,50);
	
	
	xxx = new JButton("");
	add(BorderLayout.SOUTH,xyz);
	xyz.add(xxx);
    xxx.addActionListener(this);
	xxx.setPreferredSize(new Dimension(1, 1));


Jetzt kommt die Exception:

Code:
adding a window to a container

hä?
 

hupfdule

Top Contributor
Anonymous hat gesagt.:
Jetzt kommt die Exception:

Code:
adding a window to a container

Das ist keine Exception.
Und wieder:

* Poste die ganze Exception
* Poste die Stelle des Codes, an der die Exception auftritt (und die relevanten Teile davor)
 
G

Guest

Gast
Die Exception:
Code:
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:1010)
at java.awt.Conainer.add(Container.java:364)
at Writer.makeGui(Writer.java:427)
at Writer.<init>(Writer.java:106)
at Writer.main(Writer.java:90)

Und nochmal der CodeTeil:

Code:
	xyz = new JDialog();
    xyz.setVisible(true);
    xyz.setSize(50,50);
	
	
	xxx = new JButton("");
	add(BorderLayout.SOUTH,xyz);
	xyz.add(xxx);
    xxx.addActionListener(this);
	xxx.setPreferredSize(new Dimension(1, 1));
 

hupfdule

Top Contributor
Ist die Vermutung korrekt, dass der Fehler hier auftritt:
Code:
	add(BorderLayout.SOUTH,xyz);
?

(Du machst dir und uns das einfacher, wenn du zumindest hinter die entsprechende Zeile einen Kommentar machst, etwas "// hier tritt der Fehler auf".)

2 Sachen sind mir aufgefallen. Dein Writer ist von Frame abgeleitet, nicht von JFrame. Hast du das bewusst gemacht?
Das scheint den Fehler aber nicht zu verursachen.

Ich bin der Meinung, dass du die Methode falsch benutzt. Es scheint mir diese zu sein:

http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Container.html#add(java.lang.String, java.awt.Component)

Diese ist deprecated und du solltest sie schon deswegen nicht verwenden. Leider ist der Kommentar in der Javadoc auch nicht mehr sehr aussagekrätig, was denn nun der erste Parameter ist. Ich schätze jedoch, dass du ihn falsch verwendest. Benutze also
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Container.html#add(java.awt.Component, java.lang.Object)

Geht es damit?


BTW: Gibt es eigentlich irgendeinen Grund, warum diese Scheiß URL Tags hier im Forum nicht für obige Javadoc Links funktionieren?
 

hupfdule

Top Contributor
Beispiele findest du in der API zum BorderLayout oder in dem entsprechenden Tutorial.

Code:
add(xyz, BorderLayout.SOUTH);
 
G

Guest

Gast
Zum Verrücktwerden! Da kommt wieder dieselbe Exception mit dem add a window to a container wie vorher! :bahnhof: :autsch:
 

hupfdule

Top Contributor
OK, dann lag es daran also nicht.

Neue Vermutung: Hat dein Container überhaupt kein BorderLayout?

BTW: "adding a window to a container" ist nicht die Fehlermeldung, wie dir an dem Text ersichtlich sein sollte. Die Exception selbst ist eine IllegalArgumentException. Das andere ist eine Message zur Exception
 
G

Guest

Gast
1. Stimmt, das is ne IllegalArgumentException.

2. Ups, ich hab xyz wirklich noch kein Layout zugewiesen!
*räusper* :oops: Wie macht man das? Sonst hab ichs nur mit einer add gesehen, mit xyz.setLayout(BorderLayout); funzts aufjedenfall nicht...

Übrigens: Schonmal vielen Dank für deine vielen Postings, hupfdule. :D
 
G

Guest

Gast
NEIN! DAran lags auch nicht!!! Wirklich schlimm...
116.gif
 
G

Guest

Gast
Also, falls es euch hilft is hier nochmal wirklich der ganze, ganze relevante Teil:


Das "Bekanntmachen":

Code:
private JButton                         xxx;
private JDialog                         xyz;


Die Gui-Methode:

Code:
public void makeGui() {


Der JDialog und der JButton:

Code:
xyz = new JDialog();
xyz.setVisible(true);
xyz.setSize(100,100);
xyz.setLayout(new BorderLayout());
	
	
xxx = new JButton("");
add(xyz, BorderLayout.SOUTH);
xxx.addActionListener(this);
xxx.setPreferredSize(new Dimension(50, 50));


Und am Ende die Klammer wieder zu. :wink:

Code:
}
 
R

Roar

Gast
alder ne wie kann man die fehlermeldung denn nich verstehen oder liest du die gar nicht :?:
du kannst kei nfenster zu einem contaier hinzufügen, wie soll das auch nachher aussehen :?:
> add(xyz, BorderLayout.SOUTH);
 
G

Guest

Gast
Ohje, wasn fehler!!!

ABer trotzdem vielen vielen Dank!! Jetzt funzts!

:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:

:wink:
 

Leroy42

Top Contributor
Anonymous hat gesagt.:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:
:applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus: :applaus:

:wink:

:shock:

Mein armer Browser! :(

(mal gucken wie er mit 180 + ein paar zerquetschten Anim-Gifs klarkommt :autsch: )

Edit: Haut ja problemlos hin! :cool:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
S Mein erstes eigenes Projekt - Aufbau und Strukturierung Java Basics - Anfänger-Themen 6
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
G eigenes package Java Basics - Anfänger-Themen 3
Anfänger2011 Eigenes Betriebssystem Java Basics - Anfänger-Themen 6
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
P eigenes Equal mit IndexOf() Java Basics - Anfänger-Themen 5
L eigenes Steuerelement Zeitstrahl Java Basics - Anfänger-Themen 3
F Eigenes Package - Variable exportieren Java Basics - Anfänger-Themen 11
GianaSisters Methoden eigenes TableModel -> removeRow möglich machen Java Basics - Anfänger-Themen 30
D Eigenes Event beim TimeOut Java Basics - Anfänger-Themen 2
C Eigenes Konsolenfenster Java Basics - Anfänger-Themen 3
D Packages verwenden und in eigenes Projekt integrieren Java Basics - Anfänger-Themen 3
B Eigenes Package Java Basics - Anfänger-Themen 6
S Eigenes Objekt temporär verändern? (Clone)? Java Basics - Anfänger-Themen 12
M Eigenes Programm Flaechenrechner Java Basics - Anfänger-Themen 8
L Eigenes List Model für Icon + String -> Speicherhungrig? Java Basics - Anfänger-Themen 8
X Eigenes Kontosystem vervollständigen Java Basics - Anfänger-Themen 11
Developer_X eigenes ImageIcon schreiben Java Basics - Anfänger-Themen 11
Q Eigenes Event feuern Java Basics - Anfänger-Themen 5
S Eigenes Kontextmenü Java Basics - Anfänger-Themen 3
I jar in eigenes Programm unwandeln (OSX und Win) Java Basics - Anfänger-Themen 4
R Eigenes Pair Object Java Basics - Anfänger-Themen 2
C eigenes TableModel Java Basics - Anfänger-Themen 2
data89 In Java ein eigenes Lexikon erstellen? Doch wie? Java Basics - Anfänger-Themen 5
GilbertGrape Eigenes Event? Java Basics - Anfänger-Themen 2
K javadoc eigenes doclet in console starten Java Basics - Anfänger-Themen 3
B Eigenes Event schreiben Java Basics - Anfänger-Themen 7
M Eigenes Ellipse2D-Objekt Java Basics - Anfänger-Themen 5
N Eigenes Icon in InputDialog geht nicht! Java Basics - Anfänger-Themen 7
J Eigenes Symbol für Java Programm Java Basics - Anfänger-Themen 3
M Eigenes Seitenformat definieren Java Basics - Anfänger-Themen 2
Q Eigenes TableModel - NullPointerException Java Basics - Anfänger-Themen 6
F eigenes Package Java Basics - Anfänger-Themen 2
B Package/Klasse in ein eigenes Projekt einbinden? aber wie? Java Basics - Anfänger-Themen 6
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben