//模板类
JFrame //java的GUI程序底层模板类,承载面板类的Window对象
//面板类(可嵌套)
JPanel //面板类,对具有相同逻辑功能的组件进行组合,是一种轻量级容器
JScrollPane //滚动面板类
JSplitPane //分割面板类
JTabbedPane //选项面板类
JList<Object> //列表项面板类
//组件类
JLabel //标签,安放在面板类上的文本、图像
JTextField //文本框(单行文本)
JTextArea //文本区(多行文本)
JPasswordField //密码框
JButton //按钮类
JList<Object>常用API
JList<Object> jlist = new JList<Object>(list.toArray());
//设置边框颜色和边距
jlist.setBorder(BorderFactory.createLineBorder(Color.gray, 1));
//设置单元渲染器
jlist.setCellRenderer(new ListCellRenderer<Object>() {
/**
* 这个方法会把JList列表遍历一次,
* 当中的单元格每次获得焦点时会把该单元格内容传入其中执行一次。
* 当中的单元格每被单击一次,就会遍历一次列表
* @param list JList列表
* @param value JList列表内当前值
* @param index 当前单元格的索引
* @param isSelected 选中的单元格为true
* @param cellHasFocus 有焦点的单元格为true
* @return Component 单元格
*/
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
//获取jlist内当前元素内容
String str = (String)value;
//为该单元格添加图标
setIcon(new ImageIcon(this.getClass().getResource("imges/" + str.substring(str.indexOf("?") + 1))));
setText(str.substring(0, str.indexOf("?")));
if (isSelected){
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
return this;
}
});
//鼠标监听事件
jlist.addMouseListener(new MouseListener() {
/**
* 单击列表单元格时调用(单击之后释放鼠标)
*
* e.getButton() 鼠标左击:1 鼠标中击:2 鼠标右击:3
*
* e.getClickCount() 鼠标单击次数
*/
public void mouseClicked(MouseEvent e) {}
/**
* 鼠标按在单元格上时调用
*/
public void mousePressed(MouseEvent e) {}
/**
* 鼠标在单元格上释放时调用
*/
public void mouseReleased(MouseEvent e) {}
/**
* 鼠标进入单元格上时调用(获得焦点时)
*/
public void mouseEntered(MouseEvent e) {}
/**
* 鼠标退出单元格时调用
*/
public void mouseExited(MouseEvent e) {}
});