⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selectionmodeldemo.java

📁 《精通Java Swing程序设计S》这本书所附带的JAVA程序写得很漂亮,都是SWING的实例子,很适合初学者。
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class SelectionModelDemo implements ActionListener,ListSelectionListener
{
    JTable table = null;
    ListSelectionModel selectionMode = null;
    JLabel label = null;
        
    public SelectionModelDemo()
    {
       	JFrame f = new JFrame();
       	String[] name = {"字段 1","字段 2","字段 3","字段 4","字段 5"};
       	String[][] data = new String[5][5];
       	int value =1;
       	for(int i=0; i<data.length; i++)
       	{
       	    for(int j=0; j<data[i].length ; j++)
       	        data[i][j] = String.valueOf(value++);
        }
         	        
       	table=new JTable(data,name);
       	table.setPreferredScrollableViewportSize(new Dimension(400, 80));
       	table.setCellSelectionEnabled(true);
       	selectionMode = table.getSelectionModel();
       	selectionMode.addListSelectionListener(this);
        JScrollPane s = new JScrollPane(table);
        
        JPanel panel = new JPanel();
        JButton b = new JButton("单一选择");
        panel.add(b);
        b.addActionListener(this);
        b = new JButton("连续区间选择");
        panel.add(b);
        b.addActionListener(this);
        b = new JButton("多重选择");
        panel.add(b);
        b.addActionListener(this);
        
        label = new JLabel("您选取:");
        
        Container contentPane = f.getContentPane();
        contentPane.add(panel, BorderLayout.NORTH);
        contentPane.add(s, BorderLayout.CENTER);
        contentPane.add(label, BorderLayout.SOUTH);
        
	    f.setTitle("SelectionModelDemo");
        f.pack();
        f.setVisible(true);
        
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    
    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equals("单一选择"))
            selectionMode.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        if(e.getActionCommand().equals("连续区间选择"))
            selectionMode.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        if(e.getActionCommand().equals("多重选择"))
            selectionMode.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        table.revalidate();
    }
    
    public void valueChanged(ListSelectionEvent e1)
    {
        String tempString = "";
        int[] rows = table.getSelectedRows();
        int[] columns = table.getSelectedColumns();

        for (int i=0; i<rows.length; i++) {        
            for (int j=0; j<columns.length; j++)
                tempString = tempString+" "+(String)table.getValueAt(rows[i], columns[j]);      
        }
        label.setText("您选取:"+tempString);
    }

    public static void main(String args[]) {
        new SelectionModelDemo();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -