想做一个图片浏览,用JLabel包装图片,然后在JPanel上显示。
但问题是取到JLabel后,如何设置图片的高亮和焦点,然后可以使用键盘方向键浏览图片?
初步的想法是用JLabel的坐标来判断图片在JPanel的位置,如何得到每个JLabel相对于JPanel的位置(x,y)呢?
简单的代码如下:public TestPanel extends JPanel {
public TestPanel(JLabel[] labels){
setLayout(new GridLayout(2, 3);
for (int i=0; i<labels.length; i<++) {
JLabel label = labels[i];
add(label); // ...
}
}
}请教大家,谢谢。
但问题是取到JLabel后,如何设置图片的高亮和焦点,然后可以使用键盘方向键浏览图片?
初步的想法是用JLabel的坐标来判断图片在JPanel的位置,如何得到每个JLabel相对于JPanel的位置(x,y)呢?
简单的代码如下:public TestPanel extends JPanel {
public TestPanel(JLabel[] labels){
setLayout(new GridLayout(2, 3);
for (int i=0; i<labels.length; i<++) {
JLabel label = labels[i];
add(label); // ...
}
}
}请教大家,谢谢。
2 代码中直接指定GridLayout(2, 3); row和col并不是一种好的practice.
3 Swing中并没有你要求的高亮效果,但是你可以通过改变一些界面元素来达到你想要的效果,如果其他的开发工具或者语言包可以直接设置,那也是工具或开发包的开发者已经帮你做了这些事情。
4 键盘的响应需要你实现相应的InputMap,实际上也是一种监听和Callback机制,只不过监听的是键盘不同按键的Keystroke而已。当你收到键盘Event以后,需要正确的改变和设置当前被选择的JLabel和它的外观。all right. try it
//可以设置JLabel的边框属性.
//如:setBorder(new LineBorder(new Color(0,0,255),2,true));然后可以使用键盘方向键浏览图片?
//你可以为JLabel写一个事件类实现KeyListener接口.
//如: key implements KeyListener
public key(JLabel label){
}// 在keyPressed(KeyEvent keyEvent)方法中实现方向键浏览图片
// 按方向键时设置label的边框属性JLabel label = labels[i];
//注册事件 如:new key(label);
add(label);