Mam docela zapeklitý problém, mám testovací aplikaci Frame, který na stisk klávesové zkratky otevře modální Dialog. Celé to překriji Window. Dialog se po stisknutí klávesy zavře ( a vrátí focus Frame)
Na Win a Mac se to chová "dobře". Tedy pokud držím klávesu tak na mě vyskakuje
Dialogové okno a zase se schovává.
Na Linuxu se ale po jedné či dvou iteracích focus prostě ztratí.
Nalezl jsem několik zmínek o problémech linux+focus. Zvláštní také je že na
některých verzích linuxu (stejná verze javy) to funguje.
Nemáte s podobným problémem někdo více zkušeností.
Předem díky,
Pavel
Test case
import java.awt.*;
import java.awt.event.*;
class NLModal extends Dialog{
NLModal (Frame f)
{
super (f, "modal", true);
this.setBackground(Color.blue);
this.setAlwaysOnTop(true);
addWindowListener (new WindowAdapter (){
public void windowClosing (WindowEvent e){
dispose ();
}});
addKeyListener (new KeyAdapter (){
public void keyPressed (KeyEvent e){
System.out.println ("modal: " + e.paramString ());
dispose ();
}});
}
}
public class NLTest
{
public static void main (String[] args){
Frame f = new Frame ("NLTest");
f.setBackground(Color.yellow);
f.addWindowListener (new WindowAdapter (){
public void windowClosing (WindowEvent e){
System.exit (0);
}});
f.addKeyListener (new KeyAdapter (){
public void keyPressed (KeyEvent e){
System.out.println ("frame: " + e.paramString ());;
Dialog d = new NLModal ((Frame) e.getComponent ());
d.setBounds (50, 100, 600, 100);
d.show ();
}});
Dimension d = f.getToolkit ().getScreenSize ();
f.setBounds (0, 0, 300, 25);
f.show ();
Window w = new Window (f);
w.setBackground(Color.gray);
w.setBounds (0, 50, 300, 200); // working
//w.setBounds (0, 0, d.width, d.height-1); // working
//w.setBounds (0, 0, d.width-1, d.height); // working
//w.setBounds (0, 0, d.width, d.height); // focus loss
w.show ();
}
}
--
Pavel Nemec
Software Engineer
---------------------------------------------------------------------
SuSE CR, s.r.o. e-mail: [EMAIL PROTECTED]
Lihovarska 1060/12 tel:+420 284 028 981
190 00 Praha 9 fax:+420 296 542 374
Ceska republika http://www.suse.cz
signature.asc
Description: This is a digitally signed message part.
