想实现一个效果,图标的area map热点 页面加载时显示热区 如图;

2025-03-07 09:41:34
推荐回答(2个)
回答1:

可运行下,看结果,对于一些特殊的键按下等,要进行转换。请对照键码表,进行转换。本程序只转换了"Shift","Ctrl","Alt"三个特殊键.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class MyFrame2 extends JFrame{

private int FIELDSIZE = 40;
JTextArea jt = null;
public MyFrame2(){
setTitle("铵键监听");
setName("test");
setBounds(400, 200, 400, 400);
JPanel jp = new JPanel();
jt = new JTextArea(18,30);
jt.setSize(350, 380);
JButton jb = new JButton("清屏");
jt.setEditable(false);
jp.add(jt);
JScrollPane js = new JScrollPane(jp);
js.setAutoscrolls(true);
add(js,BorderLayout.CENTER);
add(jb,BorderLayout.SOUTH);
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
jt.setText("");
}
});
jt.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
String chart = e.getKeyChar() "";
int keycode = e.getKeyCode();
if(keycode==16){
chart = "Shift";
}else if(keycode==17){chart="Ctrl";}
else if(keycode==18){chart="Alt";}
jt.append("键盘\"" chart "\"按下\n");
}
public void keyReleased(KeyEvent e) {
String chart = e.getKeyChar() "";
int keycode = e.getKeyCode();//键盘按键对照码,要想看特殊键,可以对照下写
if(keycode==16){
chart = "Shift";
}else if(keycode==17){chart="Ctrl";}
else if(keycode==18){chart="Alt";}
jt.append("键盘\"" chart "\"松开\n");
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame2();
}

}

回答2:

同问,楼主现在有答案吗