java - 在方法中等待 MouseListener
问题描述
我有一个静态方法,在其中我将 a 添加MouseListener
到现有的JPanel
(使用现有的鼠标侦听器)并希望停止该方法,直到鼠标侦听器发出信号。
试过:
public Object sync;
public static void main(){
//do someThing
panel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent mE) {
synchronized(Main.sync) {
sync.notify();
}
}
public void mouseEntered(MouseEvent mE) {
}
public void mouseExited(MouseEvent mE) {
}
public void mousePressed(MouseEvent mE) {
}
public void mouseReleased(MouseEvent mE) {
}
});
synchronized(Main.sync) {
try{
Main.sync.wait();
}catch(exeption e){
//do nothing
}
}
//continue
}
但是应用程序在到达等待语句时停止响应;我对线程管理完全陌生,因此将不胜感激。
试过:
public Object sync;
public static void main(){
//do someThing
SwingUtilitys.invokeLater(new Runnable(){
public void run(){
panel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent mE) {
synchronized(Main.sync) {
sync.notify();
}
}
public void mouseEntered(MouseEvent mE) {
}
public void mouseExited(MouseEvent mE) {
}
public void mousePressed(MouseEvent mE) {
}
public void mouseReleased(MouseEvent mE) {
}
});
});
synchronized(Main.sync) {
try{
Main.sync.wait();
}catch(exeption e){
//do nothing
}
}
}
它工作得很好。感谢 ConAltDEl。
解决方案
推荐阅读
- c# - 如何将字符串中的元素与“-”进行比较?
- python - PyQT5 - QLayout:尝试将 QLayout“”添加到 QMainWindow“Dialog”,它已经有一个布局
- mongodb - 一个 mongodb 分片显示出奇怪的缓慢行为
- javascript - 在javascript中创建元素的正确方法
- caching - 写入内存的策略
- c++ - C++ 空值和 this 指针
- powershell - 修改后的 PowerShell DiffPatch 脚本无法正确写入数据
- ios - xcode 预览无法内置到项目中
- android - 关于 Firebase 身份验证标识符(Android)的问题
- shrine - Shrine 清除持久性成功的缓存图像