-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
1.4.2
-
x86
-
linux
Name: dk106046 Date: 04/26/2004
OPERATING SYSTEM(S):
SuSE SLES8 for IA32 and RedHat RHAS3 for IA32 with Korean locale
FULL JDK VERSION(S):
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
On Korean locale (with Ami IM server),
IM status does not update properly with window focus change operation.
IM status is displayed on KDE panel or window title on GNOME dock.
Please try following instruction:
1. Open terminal window. It can input Korean characters via Ami
2. Compile KeyEventTest.java and run it on Korean locale
3. On main window(AWT), check Ami's IM status.
(It's in unknown)
4. Press "Open" button on main window, check Ami's IM status.
(It's in English mode)
5. Move focus to main window, check Ami's IM status.
(It's in English mode)
6. Move focus to terminal window, check Ami's IM status.
(It's in English mode)
7. Move focus to main window, check Ami's IM status.
(It's in unknown)
Test result for step 3, 5, 7 should be same, but they are not. <== PROBLEM
============================================================
import java.awt.*;
import java.awt.event.*;
class KeyEventTest extends Frame implements ActionListener {
final int FRAME_OFFSET = 24;
private int frameCount = 0;
KeyEventTest() {
setTitle("AWT");
setLayout(new GridLayout(0,1));
add(new Label("New Window"));
Button button = new Button("Open");
button.addActionListener(this);
add(button);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
ButtonKeyEventTest f = new ButtonKeyEventTest("Button"+frameCount);
frameCount++;
f.setLocation(FRAME_OFFSET*frameCount, FRAME_OFFSET*frameCount);
f.pack();
f.show();
}
public static void main(String[] args) {
KeyEventTest f = new KeyEventTest();
f.pack();
f.show();
}
}
class ButtonKeyEventTest extends Frame {
ButtonKeyEventTest(String label) {
setTitle(label);
setLayout(new GridLayout(0,1));
ButtonWithKeyEvent button = new ButtonWithKeyEvent(label);
add(button);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
dispose();
}
});
}
}
class ButtonWithKeyEvent extends Button {
ButtonWithKeyEvent(String label) {
setLabel(label);
enableEvents(AWTEvent.KEY_EVENT_MASK);
}
public void processKeyEvent(KeyEvent e) {
System.out.println("processKeyEvent:id="+e.getID());
}
}
============================================================
======================================================================
###@###.### 10/24/04 22:41 GMT
OPERATING SYSTEM(S):
SuSE SLES8 for IA32 and RedHat RHAS3 for IA32 with Korean locale
FULL JDK VERSION(S):
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
On Korean locale (with Ami IM server),
IM status does not update properly with window focus change operation.
IM status is displayed on KDE panel or window title on GNOME dock.
Please try following instruction:
1. Open terminal window. It can input Korean characters via Ami
2. Compile KeyEventTest.java and run it on Korean locale
3. On main window(AWT), check Ami's IM status.
(It's in unknown)
4. Press "Open" button on main window, check Ami's IM status.
(It's in English mode)
5. Move focus to main window, check Ami's IM status.
(It's in English mode)
6. Move focus to terminal window, check Ami's IM status.
(It's in English mode)
7. Move focus to main window, check Ami's IM status.
(It's in unknown)
Test result for step 3, 5, 7 should be same, but they are not. <== PROBLEM
============================================================
import java.awt.*;
import java.awt.event.*;
class KeyEventTest extends Frame implements ActionListener {
final int FRAME_OFFSET = 24;
private int frameCount = 0;
KeyEventTest() {
setTitle("AWT");
setLayout(new GridLayout(0,1));
add(new Label("New Window"));
Button button = new Button("Open");
button.addActionListener(this);
add(button);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
ButtonKeyEventTest f = new ButtonKeyEventTest("Button"+frameCount);
frameCount++;
f.setLocation(FRAME_OFFSET*frameCount, FRAME_OFFSET*frameCount);
f.pack();
f.show();
}
public static void main(String[] args) {
KeyEventTest f = new KeyEventTest();
f.pack();
f.show();
}
}
class ButtonKeyEventTest extends Frame {
ButtonKeyEventTest(String label) {
setTitle(label);
setLayout(new GridLayout(0,1));
ButtonWithKeyEvent button = new ButtonWithKeyEvent(label);
add(button);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
dispose();
}
});
}
}
class ButtonWithKeyEvent extends Button {
ButtonWithKeyEvent(String label) {
setLabel(label);
enableEvents(AWTEvent.KEY_EVENT_MASK);
}
public void processKeyEvent(KeyEvent e) {
System.out.println("processKeyEvent:id="+e.getID());
}
}
============================================================
======================================================================
###@###.### 10/24/04 22:41 GMT