Eigenes Fenster

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
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
 
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.
 
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?
 
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.
 
Okee, ich hab jetzt ein ganz einfachen JDialog erstellt. Aber kann ich mit ActionPerformed den JDialog per

show JDialog save;

aufrufen?
 
Natürlich!!! :autsch:

Doofheit...


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

save = new JDialog("Hallo");
 
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...
 
Es funktioniert immer noch nicht! :bahnhof:

Liegts am JFrame owner, weil ich hab den so übernommen... ???:L
 
Das sollte nur heißen, dass da ein Objekt von JFrame rein soll:

Code:
JDialog xyz=new JDialog(new JFrame("Ich bin ein Fenster"));
 
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!!!
 
okay, etwas "gewurstel" und ich hab eine ursprüngliche Datei wieder. Hab einfach dekompiliert.
 
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? :?:
 
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);
 
Entschuldigung, hab mich getäuscht. Sie wird nicht wegen dem private-Eintrag, sondern erst, wenn ich versuche, zB einen Button zu adden geworfen.
 
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.
 
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
 
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)
 
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
 
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.
 
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.
 
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:
 
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?
 
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? :?:
 
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.
 
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ä?
 
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)
 
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));
 
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?
 
Beispiele findest du in der API zum BorderLayout oder in dem entsprechenden Tutorial.

Code:
add(xyz, BorderLayout.SOUTH);
 
Zum Verrücktwerden! Da kommt wieder dieselbe Exception mit dem add a window to a container wie vorher! :bahnhof: :autsch:
 
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
 
1. Stimmt, das is ne IllegalArgumentException.

2. Ups, ich hab xyz wirklich noch kein Layout zugewiesen!
*räusper* 😳 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. 😀
 
NEIN! DAran lags auch nicht!!! Wirklich schlimm...
116.gif
 
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:
}
 
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);
 
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:
 
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! 😎
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben