📄 iconlistview.java
字号:
/**
*
*/
package flow.graph.gui.tree;
/**
* @author Administrator
*
*/
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.Icon;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListModel;
/**
* @author matt
*/
public class IconListView extends JScrollPane {
interface Activateable {
public void activate();
}
JList list;
IconListRenderer ivr;
IconListView(ListModel model) {
init(model);
}
IconListView(ListModel model, Icon defaultIcon) {
init(model);
ivr.setDefaultIcon(defaultIcon);
}
void init(ListModel model) {
list = new JList(model);
list.setCellRenderer(ivr = new IconListRenderer());
this.setViewportView(list);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int index = list.locationToIndex(e.getPoint());
handleDoubleClick(index);
}
}
});
list.setLayoutOrientation(JList.VERTICAL_WRAP);
list.setVisibleRowCount(-11);
}
public void handleDoubleClick(int index) {
Object element = list.getModel().getElementAt(index);
if (element instanceof Activateable)
((Activateable)element).activate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -