package JList;
/*
* Created on Oct 12,2010
*
* Copyright by Cuckoo
*/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.Serializable;
import java.util.ArrayList;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
/**
*
* @author Cuckoo
* @Date Oct 12,2010
* @Time 19:55
* @Description
* Just a test for List.
*
*/
public class List {
public static void main(String[] args){
new List().init();
}
/**
*
* @Author Cuckoo
* @Date Oct 12,2010
* @Time 19:57
* @Description
*/
private void init(){
JFrame frame = new JFrame("List");
Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
ArrayList<JCheckBox> checkList = new ArrayList<JCheckBox>();
JCheckBox check1 = new JCheckBox("cuckoo");
JCheckBox check2 = new JCheckBox("tu");
checkList.add(check1);
checkList.add(check2);
JCheckBox[] chBox = checkList.toArray(new JCheckBox[0]);
final JList list = new JList(chBox);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
container.add(list, BorderLayout.CENTER);
list.setCellRenderer(new DefineListCellRenderer());
list.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
Object[] obj = list.getSelectedValues();
for(int i = 0 ;i < obj.length ;i ++){
Object com = list.getModel().getElementAt(list.getSelectedIndices()[i]);
JCheckBox check = (JCheckBox)com;
check.setSelected(!check.isSelected());
list.repaint();
}
}
});
frame.setPreferredSize(new Dimension(500,400));
frame.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
System.exit(-1);
}
});
frame.setVisible(true);
frame.pack();
}
private class DefineListCellRenderer extends JPanel implements ListCellRenderer, Serializable{
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if( index % 2 == 0){
((Component)value).setBackground(Color.WHITE);
}else{
((Component)value).setBackground(Color.GRAY);
}
return (Component)value;
}
}
}
分享到:
相关推荐
JFrame frame = new JFrame("JList Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(list); frame.setSize(300, 100); frame.setVisible(true); ``` ##### 1.5 JTable用法 `JTable`...
example : JList<type> test; eg1 : JList<int> test; eg2 : JList<struct> test; eg2 : JList<class> test;
在"swing_example"压缩包中,可能包含了一些示例代码,展示了如何使用Swing创建和配置上述组件。通过学习和运行这些示例,你可以更直观地理解Swing组件的工作原理,并将其应用到自己的项目中。 总结起来,Swing是...
本教程“GUI java jdk example!”显然是针对使用 Java JDK 和 Swing 进行 GUI 编程的实践示例集。 Java JDK(Java Development Kit)是开发和运行 Java 应用程序的基础,包含了 Java 编译器、JRE(Java Runtime ...
Swing提供了丰富的组件和接口,如JList、DefaultListModel、ActionListener等,帮助开发者构建这种交互式的菜单系统。JList组件可以用来展示选项列表,而DefaultListModel则用来存储这些选项数据。ActionListener...
在本文档中,我们将详细介绍 Swing 中的一些关键组件,包括 JTable、JTree、JList、JToolTip、JComboBox、JMenu、JTabbedPane、Border、JSlider 等,并通过具体的示例来展示它们的应用场景。 #### 二、JTable 示例...
例如,JTable和JList组件都支持这种模式,允许你绑定数据模型并在用户界面中动态显示。 此外,Swing提供了可扩展性和自定义性。你可以通过继承已有的组件类或使用装饰器模式来创建自己的组件。Chapter13_example....
此外,课件可能还涵盖了其他GUI组件,如`JComboBox`(组合框)允许用户从预定义的列表中选择项,`JList`(列表)展示可选的列表项,`JSlider`(滑块)提供一种数值选择机制,`JTextComponent`(文本组件)家族包括`...
9. `ListExample.java`可能包含了一个使用`JList`组件的例子,`JList`允许用户从预定义的选项中选择一个或多个项。 10. `InvisibleNode.java`可能是一个表示不可见树节点的类,这可能是为了优化显示或者管理树结构的...
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { // Customize the renderer component here // For example, changing font...
在Swing中,JTable、JList等组件有自己的模型类,如DefaultTableModel和DefaultListModel。模型负责存储和更新数据,并通过监听器接口(如PropertyChangeSupport)通知视图数据的变化。例如,当你在JTable中添加或...
在这个实现中,可能包括了`JTextField`用于文本输入,`JButton`用于触发动作,`JFileChooser`用于选择附件,以及可能的`JList`或`JTable`来管理联系人。 JavaMail API的核心类包括`Session`、`Message`、`...
7. JComboBox和JList:提供下拉选择和列表选择功能。 8. JCheckBox和JRadioButton:创建复选框和单选按钮。 9. JMenuBar和JMenuItem:构建菜单栏和菜单项,用于实现上下文敏感的菜单系统。 10. JScrollPane:用于...
4. **选择组件**:JComboBox、JList、JTable和JTree,用于提供多种选择方式。 5. **菜单组件**:JMenuBar、JMenu、.JMenuItem等,构建上下文敏感的菜单系统。 6. **布局管理器**:FlowLayout、BorderLayout、...
JFrame frame = new JFrame("Swing Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Click me!"); button.addActionListener(new ActionListener() { @...
JFrame frame = new JFrame("Swing Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); JPanel panel = new JPanel(); JLabel label = new JLabel("Hello, Swing!")...