2010-12-01 11 views
0

Ich habe ein Java-Programm, das von einem Browser gestartet wird, mit verschiedenen java.awt.Button-Schaltflächen ausgeführt wird. Wenn Sie darauf klicken, ist es in Ordnung. Wenn jedoch eine Taste gedrückt wird, die dieser Taste entspricht, gibt Windows den Standard-Signalton aus.Java: Beep-Ton bei Tastendruck verhindern

Die Tasten sind wie folgt erstellt:

import java.awt.event.KeyEvent; 

...

public class pClient extends Applet implements KeyListener, constants { 

...

f.addKeyListener(this); 
:

import java.awt.GridLayout; 
import java.awt.BorderLayout; 
import java.io.*; 
import java.awt.Panel; 
import java.awt.Button; 
import java.awt.Font; 
import java.awt.event.*; 
import java.lang.Integer; 

public class buttonPne extends Panel implements ActionListener, constants { 

    private pClient parent = null; 
    private labelPne buttonLabel[] = new labelPne[8]; 
    private Panel buttonPanel[] = new Panel[8]; 
    public Button theButtons[] = new Button[8]; 
    private boolean buttonStatus[] = new boolean[8]; 

    public buttonPne(pClient c) { 

     parent = c; 

     this.setLayout(new GridLayout(1, 8, 1, 0)); 

     for (int i = 0; i < 8; i++) { 

      buttonLabel[i] = new labelPne(parent); 
      buttonLabel[i].setSize(9, 9); 

      theButtons[i] = new Button(); 
      theButtons[i].setFont(ButtonFont); 
      theButtons[i].setActionCommand(Integer.toString(i)); 
      theButtons[i].addActionListener(this); 
      theButtons[i].addKeyListener(parent); 

      buttonPanel[i] = new Panel(); 
      buttonPanel[i].setBackground(backgroundColor); 
      buttonPanel[i].setLayout(new BorderLayout()); 
      buttonPanel[i].add("North", theButtons[i]); 
      buttonPanel[i].add("South", buttonLabel[i]); 

      this.add(buttonPanel[i]); 
     } 

     Deactivate(); 
    } 

Die Tastendrücke wie diese behandelt werden

...

public void keyPressed(KeyEvent evt) { 

    int theKey; 

    theKey = evt.getKeyCode(); 

    switch(theKey) { 

    case KeyEvent.VK_1: 
    case KeyEvent.VK_F1: 
     buttons.DoButton(0); 
     break; 

...

public void DoButton(int theNumber) { 

    if (buttonStatus[theNumber]) { 

     if (parent.pollSendFlag(BUTTONS)) { 

      parent.chat.takeFocus(); 
      parent.compass.Deactivate(); 
      Deactivate(); 
     } 
    } 
    return; 
} 

Wie kann ich die Standard-Piepton stoppen auf Tastendrücke nicht passiert?

Antwort

0

Verwenden Sie Swing-Komponenten anstelle von AWT-Komponenten.