📄 demotable.java
字号:
package flow.graph.test.table;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import flow.graph.gui.graph.cell.ui.AssignForm;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* TableDemo is just like SimpleTableDemo, except that it uses a custom
* TableModel.
*/
public class DemoTable extends JPanel {
private boolean DEBUG = true;
JTable table;
static JComboBox box1 = new JComboBox();
static{
for(int i=0;i<3;i++)
box1.insertItemAt("box1 "+i, i);
}
static JComboBox box2 = new JComboBox();
static{
for(int i=0;i<3;i++)
box2.insertItemAt("box2 "+i, i);
}
static JComboBox box3 = new JComboBox();
static{
for(int i=0;i<3;i++)
box3.insertItemAt("box3 "+i, i);
}
static JComboBox box4 = new JComboBox();
static{
for(int i=0;i<3;i++)
box4.insertItemAt("box4 "+i, i);
}
public DemoTable() {
super(new GridLayout(1, 0));
table = new JTable(new DemoTableModel());
((DemoTableModel)table.getModel()).addRow("", "");
((DemoTableModel)table.getModel()).addRow("", "");
((DemoTableModel)table.getModel()).addRow("", "");
((DemoTableModel)table.getModel()).addRow("", "");
table.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(box1));
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
add(scrollPane);
}
public JTable getTable(){
return table;
}
/**
* Create the GUI and show it. For thread safety, this method should be
* invoked from the event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
final DemoTable newContentPane = new DemoTable();
newContentPane.setOpaque(true); //content panes must be opaque
//frame.setContentPane(newContentPane);
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(newContentPane, BorderLayout.CENTER);
JPanel panel = new JPanel(new FlowLayout());
JButton button = new JButton("打 印");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//((DemoTableModel)newContentPane.getTable().getModel()).printDebugData();
}
});
panel.add(button);
String[] boxValue = {"", "list -a", "list -b", "list -c"};
JComboBox box = new JComboBox(boxValue);
box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
//System.out.println("selected:"+e.getItem());
JComboBox box = (JComboBox)e.getSource();
System.out.println(box.getSelectedItem().toString());
}
});
panel.add(box);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
AssignForm.configureUI();
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -