Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.10.2013, 15:26

Java Key- und Mouselistener auf JPanel

Guten Tag,
ich habe mal wieder eine Frage, bei der ich hier hoffentlich Hilfe erhalten kann.
Und zwar habe ich ein Problem bei der gleichzeitigen Nutzung eines Mouse- und Keylisteners.
Der Mauslistener läuft über ein Objekt des Typs JPanel, der KeyListener über ein JFrame.
Starte ich das Programm, so funktioniert alles wunderbar. Sobald ich jedoch ein auf einen JButton klicke, dem ein ActionListener zugeordnet ist, in dem jedoch keinerlei Funktionen aufgerufen werden, läuft nur noch der MouseListener- drücke ich dagegen Tasten derTastatur, passiert gar nichts.

Hier ein Codeauszug (Sprache: Java):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
 private JFrame frmLeveleditor;  
JPanel drawingPanel = null; JFileChooser fc = new JFileChooser();
    frmLeveleditor = new JFrame();   frmLeveleditor.setTitle("Leveleditor");  frmLeveleditor.setBounds(100, 100, 1080, 720);  frmLeveleditor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  frmLeveleditor.getContentPane().setLayout(null); frmLeveleditor.setFocusable(true);
     drawingPanel = new JPanel(); drawingPanel.setBounds(0, 61, 1064, 620); frmLeveleditor.getContentPane().add(drawingPanel);   drawingPanel.addMouseListener(new MouseAdapter(){ @Override
            public void mouseClicked(MouseEvent e) {  int returnVal = fc.showOpenDialog(null); File file = null; if (returnVal == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); System.out.println("File: " + file.getAbsolutePath() + ".");   } else {    System.out.println("Filedialog vom Benutzer unterbrochen."); } }

            
        });
        frmLeveleditor.addKeyListener(new KeyListener(){         @Override
            public void keyPressed(KeyEvent k) {   } [...]



Ich habe echt schon sehr viel selbst rumprobiert, und auch lange im Internet rumgesucht, bin jedoch bisher auf keine Lösung gekommen.
Was mache ich falsch?

Über Antworten würde ich mich freuen.
Viele Grüße,
NJeur

Edit: Im Quelltext werden die Zeilenumbrüche irgendwie automatisch entfernt- wie halte ich das lesbar?

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

2

07.10.2013, 15:30

In der Editieransicht den Tab von Editor auf Quellcode umstellen:

(Link)

Dann einfach neu einfügen.

3

07.10.2013, 15:37

Danke für den Tipp @patrick, ich hab die Lösung für mein Problem allerdings schon gefunden- ein Aufruf von JButton.getTopLevelAncestor().requestFocus(); in den jeweiligen Actionlistenern genügte.
Das Thema hat sich also erledigt :)

Werbeanzeige