karlomutschler
Programmer
Hi all,
The follwing code compiles fine and the status of the Locking Keys (Caps, Num & Scroll) are displayed on the StatusBar.
However, when the respective keys are pressed the display does not change eg from Caps Off to Caps On.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class StatusBar extends JFrame {
//Object Variables
JTextField messageField;
JTextField userField;
JTextField dateLongField;
JTextField capsLockField;
JTextField numLockField;
JTextField scrollLockField;
JTextField timeField;
Toolkit toolkit = Toolkit.getDefaultToolkit();
public StatusBar() {
super("Status Bar"
addKeyListener(new CapsLockKeyListener());
addKeyListener(new NumLockKeyListener());
addKeyListener(new ScrollLockKeyListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
Border raisedBorder = new BevelBorder(BevelBorder.RAISED);
Border loweredBorder = new BevelBorder(BevelBorder.LOWERED);
Border emptyBorder = new EmptyBorder(2, 2, 2, 2);
//StatusBar
Box sbar = Box.createHorizontalBox();
messageField = new JTextField(30);
messageField.setBackground(Color.LIGHT_GRAY);
messageField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
userField = new JTextField(12);
userField.setText("Karlo Mutschler"
userField.setBackground(Color.LIGHT_GRAY);
userField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
dateLongField = new JTextField(18);
dateLongField.setText("Donnerstag, 31. November 2002"
dateLongField.setBackground(Color.LIGHT_GRAY);
dateLongField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
capsLockField = new JTextField(5);
// capsLockField.setText("Caps On"
if (toolkit.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
capsLockField.setText("Caps On"
} else {
capsLockField.setText("Caps Off"
}
capsLockField.setBackground(Color.LIGHT_GRAY);
capsLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
numLockField = new JTextField(5);
// numLockField.setText("Num On"
if (toolkit.getLockingKeyState(KeyEvent.VK_NUM_LOCK)) {
numLockField.setText("Num On"
} else {
numLockField.setText("Num Off"
}
numLockField.setBackground(Color.LIGHT_GRAY);
numLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
scrollLockField = new JTextField(5);
// scrollLockField.setText("Scroll On"
if (toolkit.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK)) {
scrollLockField.setText("Scroll On"
} else {
scrollLockField.setText("Scroll Off"
}
scrollLockField.setBackground(Color.LIGHT_GRAY);
scrollLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
timeField = new JTextField(5);
timeField.setText("23:47"
timeField.setBackground(Color.LIGHT_GRAY);
timeField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
messageField.setEditable(false);
sbar.add(messageField);
sbar.add(Box.createGlue());
userField.setEditable(false);
sbar.add(userField);
dateLongField.setEditable(false);
sbar.add(dateLongField);
capsLockField.setEditable(false);
sbar.add(capsLockField);
numLockField.setEditable(false);
sbar.add(numLockField);
scrollLockField.setEditable(false);
sbar.add(scrollLockField);
timeField.setEditable(false);
sbar.add(timeField);
sbar.setBorder(new CompoundBorder(raisedBorder, emptyBorder));
contentPane.add(sbar, BorderLayout.SOUTH);
}
public static void main(String[] arguments) {
StatusBar sb = new StatusBar();
sb.setVisible(true);
sb.setExtendedState(Frame.MAXIMIZED_BOTH);
}
//Inner Classes
class CapsLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e) {
System.out.println("Caps Lock"
if (toolkit.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)){
capsLockField.setText("Caps On"
} else {
capsLockField.setText("Caps Off"
}
}
}
class NumLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e){
System.out.println("Num Lock"
if(toolkit.getLockingKeyState(KeyEvent.VK_NUM_LOCK)){
numLockField.setText("Num On"
} else {
numLockField.setText("Num Off"
}
}
}
class ScrollLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e){
System.out.println("Scroll Lock"
if(toolkit.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK)){
scrollLockField.setText("Scroll On"
} else {
scrollLockField.setText("Scroll Off"
}
}
}
}
Any help is much appreciated
Kind regards.
Karlo meistertools@gmx.net
The follwing code compiles fine and the status of the Locking Keys (Caps, Num & Scroll) are displayed on the StatusBar.
However, when the respective keys are pressed the display does not change eg from Caps Off to Caps On.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class StatusBar extends JFrame {
//Object Variables
JTextField messageField;
JTextField userField;
JTextField dateLongField;
JTextField capsLockField;
JTextField numLockField;
JTextField scrollLockField;
JTextField timeField;
Toolkit toolkit = Toolkit.getDefaultToolkit();
public StatusBar() {
super("Status Bar"
addKeyListener(new CapsLockKeyListener());
addKeyListener(new NumLockKeyListener());
addKeyListener(new ScrollLockKeyListener());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = getContentPane();
Border raisedBorder = new BevelBorder(BevelBorder.RAISED);
Border loweredBorder = new BevelBorder(BevelBorder.LOWERED);
Border emptyBorder = new EmptyBorder(2, 2, 2, 2);
//StatusBar
Box sbar = Box.createHorizontalBox();
messageField = new JTextField(30);
messageField.setBackground(Color.LIGHT_GRAY);
messageField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
userField = new JTextField(12);
userField.setText("Karlo Mutschler"
userField.setBackground(Color.LIGHT_GRAY);
userField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
dateLongField = new JTextField(18);
dateLongField.setText("Donnerstag, 31. November 2002"
dateLongField.setBackground(Color.LIGHT_GRAY);
dateLongField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
capsLockField = new JTextField(5);
// capsLockField.setText("Caps On"
if (toolkit.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
capsLockField.setText("Caps On"
} else {
capsLockField.setText("Caps Off"
}
capsLockField.setBackground(Color.LIGHT_GRAY);
capsLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
numLockField = new JTextField(5);
// numLockField.setText("Num On"
if (toolkit.getLockingKeyState(KeyEvent.VK_NUM_LOCK)) {
numLockField.setText("Num On"
} else {
numLockField.setText("Num Off"
}
numLockField.setBackground(Color.LIGHT_GRAY);
numLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
scrollLockField = new JTextField(5);
// scrollLockField.setText("Scroll On"
if (toolkit.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK)) {
scrollLockField.setText("Scroll On"
} else {
scrollLockField.setText("Scroll Off"
}
scrollLockField.setBackground(Color.LIGHT_GRAY);
scrollLockField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
timeField = new JTextField(5);
timeField.setText("23:47"
timeField.setBackground(Color.LIGHT_GRAY);
timeField.setBorder(new CompoundBorder(loweredBorder, emptyBorder));
messageField.setEditable(false);
sbar.add(messageField);
sbar.add(Box.createGlue());
userField.setEditable(false);
sbar.add(userField);
dateLongField.setEditable(false);
sbar.add(dateLongField);
capsLockField.setEditable(false);
sbar.add(capsLockField);
numLockField.setEditable(false);
sbar.add(numLockField);
scrollLockField.setEditable(false);
sbar.add(scrollLockField);
timeField.setEditable(false);
sbar.add(timeField);
sbar.setBorder(new CompoundBorder(raisedBorder, emptyBorder));
contentPane.add(sbar, BorderLayout.SOUTH);
}
public static void main(String[] arguments) {
StatusBar sb = new StatusBar();
sb.setVisible(true);
sb.setExtendedState(Frame.MAXIMIZED_BOTH);
}
//Inner Classes
class CapsLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e) {
System.out.println("Caps Lock"
if (toolkit.getLockingKeyState(KeyEvent.VK_CAPS_LOCK)){
capsLockField.setText("Caps On"
} else {
capsLockField.setText("Caps Off"
}
}
}
class NumLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e){
System.out.println("Num Lock"
if(toolkit.getLockingKeyState(KeyEvent.VK_NUM_LOCK)){
numLockField.setText("Num On"
} else {
numLockField.setText("Num Off"
}
}
}
class ScrollLockKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent e){
System.out.println("Scroll Lock"
if(toolkit.getLockingKeyState(KeyEvent.VK_SCROLL_LOCK)){
scrollLockField.setText("Scroll On"
} else {
scrollLockField.setText("Scroll Off"
}
}
}
}
Any help is much appreciated
Kind regards.
Karlo meistertools@gmx.net