我已经在macOS上试用了Toolkit.beep,它似乎做了你想要的.我还没有验证JTextField调用Toolkit.beep,但它似乎正在调用它.你可以看看openjdk源代码,可能会得到一个更好的 idea .
在Windows上,JTextField似乎使用默认蜂鸣声.工具箱.哔声也是.
只要默认的工具包可以使用(这是给我的),你可以在你的应用程序中需要提醒用户的地方放置以下内容.
Toolkit tk = Toolkit.getDefaultToolkit();
tk.beep();
以下是我的MCV示例.
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import javax.swing.*;
public class Alert extends JFrame {
private Toolkit tk = Toolkit.getDefaultToolkit();
public Alert () {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField tf = new JTextField();
JButton bbeep = new JButton(new AbstractAction() {
public void actionPerformed (ActionEvent e) {tk.beep();}
});
setLayout(new BorderLayout());
getContentPane().add(tf, BorderLayout.NORTH);
getContentPane().add(bbeep, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() { new Alert(); }
});
}
}