Denkproblem mit Actionlistener!

Status
Nicht offen für weitere Antworten.
F

FrankTheFox

Gast
Hallo


ich habe folgendes Problem und keine Lösung:


Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.*;
import java.net.*;


public class ArtistAA extends JFrame{ 

   private static JFrame MDIFrame;  

   static String metalClassName = 
                  "javax.swing.plaf.metal.MetalLookAndFeel";
   static String motifClassName = 
                  "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
   static String winClassName = 
	    "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";


   private static JMenuBar createAndShowMenu(JFrame Frame) {
       JMenuBar mnuBar = new JMenuBar();       
       JMenu fMnu = new JMenu("File");
       fMnu.setMnemonic('F'); 
       fMnu.setToolTipText("Main file menu...");
       JMenuItem item1= new JMenuItem("Open");       
       item1.addActionListener(new ClsActionListener ("Open" , Frame));
       fMnu.add(item1);
       JMenuItem item3= new JMenuItem("Exit");       
       item3.addActionListener(new ClsActionListener ("Exit" , Frame));
       fMnu.add(item3);
       mnuBar.add(fMnu);             
       JMenu eMnu = new JMenu("Edit");       
       eMnu.setMnemonic('E'); 
       eMnu.setToolTipText("Main edit menu...");
       JMenuItem item2= new JMenuItem("Edite File");       
       item2.setEnabled(false); 
       item2.addActionListener(new ClsActionListener ("Edit" , Frame));
       eMnu.add(item2);
       mnuBar.add(eMnu);       
       JMenu LFMnu = new JMenu("Look & Feel");       
       LFMnu.setMnemonic('L'); 
       LFMnu.setToolTipText("Select your desired look & feel...");

       JMenuItem item4= new JCheckBoxMenuItem("metal");             
       item4.addActionListener(new ClsActionListener ("metal" , Frame, item4));
       JMenuItem item5= new JCheckBoxMenuItem("motif");   
       item5.addActionListener(new ClsActionListener ("motif" , Frame, null));
       JMenuItem item6= new JCheckBoxMenuItem("windows");         
       item6.addActionListener(new ClsActionListener ("windows" , Frame, null)); 
       LFMnu.add(item4); 
       LFMnu.add(item5);  
       LFMnu.add(item6); 
       mnuBar.add(LFMnu);                  
       return mnuBar;              
   }



   private static JFrame createAndShowMDI() {


    // ------------Create an internal frame:  MDI Child window!!!!!
    boolean resizable = true;
    boolean closeable = true;
    boolean maximizable  = true;
    boolean iconifiable = true;
    JInternalFrame iframe = new JInternalFrame("Gutachter zuordnen", 
                                               true, 
                                               true, 
                                               true, 
					       true);
    
    // Set an initial size
    int width = 200;
    int height = 200;
    iframe.setSize(width, height);
    
    // By default, internal frames are not visible; make it visible
    iframe.setVisible(true);
    
    // Add components to internal frame...
    iframe.getContentPane().add(new JTextArea());
    //--------------------------------------------------------------------------


    // Add internal frame to desktop : Now MDIChild is added to desktop pane!!!!
    JDesktopPane desktop = new JDesktopPane();
    desktop.add(iframe);
    
    // Display the desktop in a top-level frame
    JFrame frame = new JFrame("Artist");
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    frame.setIconImage(new ImageIcon("Artist.jpg").getImage());

    //Add internal frame to MDI Frame !!!!!

    frame.getContentPane().add(desktop, BorderLayout.CENTER);
    frame.setSize(1000, 800); 
  
    return frame; 
   }




   public static void main(String args[]) {  
   String idb ="is20.idb.cs.tu-bs.de/";      
   String idb_short ="is.idb.cs.tu-bs.de/";    


    if(idb_short.equals(idb.substring(0,2)+idb.substring(4,idb.length()))){
      System.out.println("Artist (Ausschnittsweise realisiertes Tagungsinformationssystem - Toll!)");
      System.out.println("-----------------------------------------------------------------------");
      System.out.println("You propably connect from another node using e.g. 'ssh'");
      
        
      try { 
         String s; 
         BufferedReader in = new BufferedReader( new InputStreamReader(System.in) );
         do {  
            System.out.print("Are you sure to start Artist (Y\\N)?"); 
            s = in.readLine();
            if (!s.equals("Y") || !s.equals("N")){
               System.out.println("Please enter 'Y' or 'N' !");};
            if (s.equals("N") || s.equals("n")){
              System.out.print("Terminate Artist!"); 
              System.exit(0);};
         }while(!s.equals("Y"));
      }
      catch(IOException e){
      }

    }
    try {
      InetAddress address = InetAddress.getLocalHost();
      System.out.println(address);
    }
    catch(UnknownHostException e){
      System.out.println("No local Address!!!");
    }
   
    
   // System.exit(0);
      
    MDIFrame = createAndShowMDI();
      
    JMenuBar mnuBar =createAndShowMenu(MDIFrame);
    MDIFrame.setJMenuBar(mnuBar);     
   
    MDIFrame.addKeyListener( new ClsKeyListener());
    MDIFrame.addWindowListener( new ClsWindowListener()); 

    MDIFrame.setVisible(true);

   }

   public static class ClsKeyListener extends KeyAdapter
   {
       public void keyPressed( KeyEvent k )
        {
             System.out.println("Keypressed!!"); 
            if( k.getKeyCode()==10)
                System.out.println(  k.getSource().toString() );
        }
        public void keyReleased(KeyEvent k){}

        public void keyTyped(KeyEvent k){}
   }


    public static class ClsWindowListener extends WindowAdapter
    {
       public void windowClosing( WindowEvent e )
       {
           /*event.getWindow().dispose();*/
           System.out.println("Ok, Naacht........."); 
       }
       public void windowIconified( WindowEvent e )
       {
           /*event.getWindow().dispose();*/
           System.out.println("Ok, bin ein Icooooon........."); 
       }
       public void windowActivated( WindowEvent e )
       {
           /*event.getWindow().dispose();*/
           /*System.out.println("Ok, Hellooooo........."); */
       }
       public void windowClosed( WindowEvent e )
       {
           // Das Fenster ist geschlossen, und jetzt können wir hier
           // weitermachen, etwa mit System.exit(), wenn alles
           // vorbei sein soll.
       }



    }

    

    
	

    


   public static class OpenFileAction extends AbstractAction
   {
  
      JFileChooser fc;
      JFrame Wnd;


      public OpenFileAction(JFrame Frame, JFileChooser JFC){     
        this.fc = JFC;
        this.Wnd = Frame;
      } 

      public void actionPerformed(ActionEvent e){
    
        System.out.println("OpenFile");
      }

   }


   public static class SaveFileAction extends AbstractAction
   {

      JFileChooser fc;
      JFrame Wnd;

      public void actionPerformed(ActionEvent e){

         System.out.println("OpenFile");
      }
   }



    public static class  ClsActionListener implements ActionListener
{
       private final String ident;
       private final JFrame Frame;
       private final JCheckBoxMenuItem CBitem;


       public ClsActionListener(String ident, JFrame Frame, JCheckBoxMenuItem CBitem){
         this.ident=ident;
         this.Frame=Frame;
         this.CBitem=CBitem;
       } 

       public ClsActionListener(String ident, JFrame Frame){
         this.ident=ident;
         this.Frame=Frame;
       }

       public void actionPerformed(ActionEvent event)
       {
           String cmd = event.getActionCommand();

           if(cmd.equals("Exit")){
             if (JOptionPane.showConfirmDialog(null,
                                              "Exit Artist?", "Artist", 
                                              JOptionPane.YES_NO_OPTION)
                == JOptionPane.YES_OPTION){
                       JOptionPane.showMessageDialog(null,
                                                   "Ok, Artist will be terminated.");
                     System.exit(1);
             }
           }
           if(cmd.equals("Open")){
              FileFilter filter = new ClsFileFilter();                   
              JFileChooser fc = new JFileChooser();
              fc.setFileFilter(filter);  
              Action openAction = new OpenFileAction(Frame,fc);
              int result = fc.showOpenDialog(Frame);
              if(result == JFileChooser.APPROVE_OPTION) {
                 System.out.println("You chose to open this file: " +
                 fc.getSelectedFile().getName());
              }
 
           }

           if(cmd.equals("metal")){
            try{               
                UIManager.setLookAndFeel(metalClassName);
		  SwingUtilities.updateComponentTreeUI(Frame);           
                CBitem.setSelected(true);
                //MDIFrame.pack(); 
            }
            catch(Exception e){
              System.out.println("Could not load metal look & feel");
            }
           }
           if(cmd.equals("motif")){
             try{
                 UIManager.setLookAndFeel(motifClassName);
		   SwingUtilities.updateComponentTreeUI(Frame);
                 CBitem.setSelected(true); 
                 //MDIFrame.pack(); 
             }
             catch(Exception e){
              System.out.println("Could not load motif look & feel");
             }
           } 
           if(cmd.equals("windows")){
             try{
                 UIManager.setLookAndFeel(winClassName );
  		   SwingUtilities.updateComponentTreeUI(Frame);
                 CBitem.setSelected(true);
                 //MDIFrame.pack(); 
             }
             catch(Exception e){
              System.out.println("Could not load windows look & feel");
             }
           } 


           
           
           //System.out.println(cmd +"    "+ ident);       
      }
   } 



}



Meine Fehlermeldung:



cannot find symbol
symbol : constructor ClsActionListener(java.lang.String,javax.swing.JFrame,java
x.swing.JMenuItem)
location: class ArtistAA.ClsActionListener
item4.addActionListener(new ClsActionListener ("metal" , Frame, item4));
^
1 error


Gruß
 
B

Beni

Gast
Jo, und jetzt lies die Fehlermeldung mal genau durch

...

Es gibt keinen Konsturktor "ClsActionListener( String, JFrame, JMenuItem )".

In der Klasse "ClsActionListener" kannst du nachlesen, welche Konstruktoren es gibt, und welchen Konstruktor du evtl. noch hinzufügen musst (oder vielleicht wolltest du kein JMenuItem, sondern ein JCheckBoxMenuItem verwenden?).
 
F

FrankTheFox

Gast
Hi,

ja klar, danke, "JMenuItem item4= new JCheckBoxMenuItem("metal");" is auch völliger Blödsinn!!!!!!!
dafür existiert auch kein Konstruktor muss heißen

JCheckBoxMenuItem item4= new JCheckBoxMenuItem("metal");

dann klappt es auch....


Aber warum meckert er, dass

..254: variable CBitem might not have been initialized
}
^
1 error...

Dafür habe ich doch zwei Konstruktoren( und wahrscheinlich Tomaten auf den Augen..)




Gruß
 
F

FrankTheFox

Gast
ich habe es jetzt ganz anders gemacht und die CheckboxMenüs static und global definiert, so dass ich dann auch den
entpreachenden Haken löschen kann (da ja nicht zwei LF gleichzeitig aktiviert werden können..)


Hatte den Konstruktor erst so geschreiben..

Code:
public ClsActionListener(String ident, JFrame Frame){
         this.ident=ident;
         this.Frame=Frame;
         CBitem=null;
       }

aber ich denke das ist zu "brute force". Durch die globale def. der CheckBoxMenuItems kann ich somit den
anderen Konstruktor rausscheissen und nur einen behalten.

Gruß
 
B

Beni

Gast
Schön wäre es, wenn du mit "UIManager.getInstalledLookAndFeels" alle verfügbaren LaFs abfragst. Denn auf gewissen Systemen macht z.B. ein "windows"-LookAndFeel wenig Sinn... und es gibt auch Benutzer, die zusätzliche Lafs installiert haben.
 
F

FrankTheFox

Gast
stimmt kann ich dann iterien und mit getClassName setzten und im Menü mit GetName anzeigen
und bin auf der sicheren Seite.



Gruß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
R ActionListener in Actionlistener AWT, Swing, JavaFX & SWT 6
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
Liondary GUI - ActionListener AWT, Swing, JavaFX & SWT 7
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
G gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
M getSource() findet Button nicht - ActionListener AWT, Swing, JavaFX & SWT 4
S Swing mit ActionListener auf Objekte einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben