62,614
社区成员
发帖
与我相关
我的任务
分享
public void ManageView(){
jf.setVisible(false);
JFrame jframe=new JFrame("超市购物管理");
JMenuBar jmb=new JMenuBar();
JMenu menu_shoping=new JMenu("查看购买商品");
JMenu menu_user=new JMenu("会员管理");
JMenu menu_store=new JMenu("仓库管理");
JMenu menu_exit=new JMenu("退出");
Object data[][]={
{1,"张三","男","18","010.82607080"},
{2,"李四","女","24","021.68727080"},
{3,"王五","男","18","0459.82607080"},
{4,"赵六","男","18","010.82607080"},
{5,"任琦","男","18","010.82607080"},
{6,"吴八","男","18","010.82607080"}
};
String columnNames[]={"编号","姓名","性别","年龄","电话"};
JTable table=new JTable(data,columnNames);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane pane=new JScrollPane(table);
Container contentPane=jframe.getContentPane();
contentPane.setLayout(new FlowLayout());
// JPanel jp=new JPanel();
// jp.setLayout(new FlowLayout());
JButton search=new JButton("查找");
JButton add=new JButton("增加");
JButton delete=new JButton("删除");
JButton update=new JButton("修改");
contentPane.add(search);
contentPane.add(add);
contentPane.add(delete);
contentPane.add(update);
jmb.add(menu_shoping);
jmb.add(menu_user);
jmb.add(menu_store);
jmb.add(menu_exit);
jframe.setJMenuBar(jmb);
jframe.add(pane,BorderLayout.NORTH);
//jframe.add(contentPane,BorderLayout.SOUTH);
jframe.setSize(600, 500);
jframe.setLocation(300, 200);
jframe.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
jframe.setVisible(true);
}
package com.han;
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JFrame;
/**
* Provide a fixed column in a table.
*
* <code><p>public boolean isCellEditable(int row, int column) {<p>
return getModel().isCellEditable(convertRowIndexToModel(row),<p>
convertColumnIndexToModel(column));<p>
}<p>
</code> so we can also directly rewrite the isCellEditable() in the table
* model.
*
* @author Gaowen
*
*/
public class JTable4_Modified extends JFrame {
private static final long serialVersionUID = 805308369080023303L;
public JTable4_Modified() {
super();
setTitle("提供行标题栏的表格");
setBounds(100, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Vector<String> columnNameV = new Vector<>();
columnNameV.add("日期");
for (int i = 1; i < 21; i++) {
columnNameV.add("商品" + i);
}
Vector<Vector<Object>> tableValueV = new Vector<>();
for (int row = 1; row < 31; row++) {
Vector<Object> rowV = new Vector<>();
rowV.add(row);
for (int col = 0; col < 20; col++) {
rowV.add((int) (Math.random() * 1000));
}
tableValueV.add(rowV);
}
final MFixedColumnTable_Modified panel = new MFixedColumnTable_Modified(
columnNameV, tableValueV, 1);
getContentPane().add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
JTable4_Modified frame = new JTable4_Modified();
frame.setVisible(true);
}
}
package com.han;
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;
/**
* <pre>
* public boolean isCellEditable(int row, int column) {
* return getModel().isCellEditable(convertRowIndexToModel(row),
* convertColumnIndexToModel(column));
* }
* </pre>
*
* so we can also directly rewrite the isCellEditable() in the table model.
*
* @author HAN
*
*/
public class MFixedColumnTable_Modified extends JPanel {
private static final long serialVersionUID = -8001758880985479654L;
private Vector<String> columnNameV; // declare the table column name vector
private Vector<Vector<Object>> tableValueV;
private int fixedColumn = 1; // the fixed column number
private JTable fixedColumnTable;
private FixedColumnTableModel fixedColumnTableModel;
private JTable floatingColumnTable;
private FloatingColumnTableModel floatingColumnTableModel;
private class FixedColumnTableModel extends AbstractTableModel {
private static final long serialVersionUID = 3935656415101599023L;
@Override
public int getRowCount() {
return tableValueV.size();
}
@Override
public int getColumnCount() {
return fixedColumn;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return tableValueV.get(rowIndex).get(columnIndex);
}
@Override
public String getColumnName(int columnIndex) {
return columnNameV.get(columnIndex);
}
}
private class FloatingColumnTableModel extends AbstractTableModel {
private static final long serialVersionUID = -2481466672947191281L;
@Override
public boolean isCellEditable(int row, int column) {
return true;
}
@Override
public int getRowCount() {
return tableValueV.size();
}
@Override
public int getColumnCount() {
return columnNameV.size() - fixedColumn;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return tableValueV.get(rowIndex).get(columnIndex + fixedColumn);
}
@Override
public String getColumnName(int columnIndex) {
return columnNameV.get(columnIndex + fixedColumn);
}
}
private class MListSelectionListener implements ListSelectionListener {
boolean isFixedColumnTable = true;
public MListSelectionListener(boolean isFixedColumnTable) {
this.isFixedColumnTable = isFixedColumnTable;
}
@Override
public void valueChanged(ListSelectionEvent e) {
if (isFixedColumnTable) {
int row = fixedColumnTable.getSelectedRow();
floatingColumnTable.setRowSelectionInterval(row, row);
} else {
int row = floatingColumnTable.getSelectedRow();
fixedColumnTable.setRowSelectionInterval(row, row);
}
}
}
public MFixedColumnTable_Modified(Vector<String> columnNameV,
Vector<Vector<Object>> tableValueV, int fixedColumn) {
super();
setLayout(new BorderLayout());
this.columnNameV = columnNameV;
this.tableValueV = tableValueV;
this.fixedColumn = fixedColumn;
// create fixedColumnTable
fixedColumnTableModel = new FixedColumnTableModel();
fixedColumnTable = new JTable(fixedColumnTableModel);
ListSelectionModel fixed = fixedColumnTable.getSelectionModel();
fixed.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
fixed.addListSelectionListener(new MListSelectionListener(true));
// create floatingColumnTable
floatingColumnTableModel = new FloatingColumnTableModel();
floatingColumnTable = new JTable(floatingColumnTableModel);
floatingColumnTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
ListSelectionModel floating = floatingColumnTable.getSelectionModel();
floating.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
floating.addListSelectionListener(new MListSelectionListener(false));
// create scrollPane
JScrollPane scrollPane = new JScrollPane();
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,
fixedColumnTable.getTableHeader());
JViewport viewport = new JViewport();
viewport.setView(fixedColumnTable);
viewport.setPreferredSize(fixedColumnTable.getPreferredSize());
scrollPane.setRowHeaderView(viewport); // viewport 视口
scrollPane.setViewportView(floatingColumnTable);
add(scrollPane, BorderLayout.CENTER);
}
}
public static void ManageView(){
JFrame jframe=new JFrame("超市购物管理");
JMenuBar jmb=new JMenuBar();
JMenu menu_shoping=new JMenu("查看购买商品");
JMenu menu_user=new JMenu("会员管理");
JMenu menu_store=new JMenu("仓库管理");
JMenu menu_exit=new JMenu("退出");
Object data[][]={
{1,"张三","男","18","010.82607080"},
{2,"李四","女","24","021.68727080"},
{3,"王五","男","18","0459.82607080"},
{4,"赵六","男","18","010.82607080"},
{5,"任琦","男","18","010.82607080"},
{6,"吴八","男","18","010.82607080"}
};
String columnNames[]={"编号","姓名","性别","年龄","电话"};
JTable table=new JTable(data,columnNames);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane pane=new JScrollPane(table);
Container contentPane=jframe.getContentPane();
contentPane.setLayout(new FlowLayout());
// JPanel jp=new JPanel();
// jp.setLayout(new FlowLayout());
JButton search=new JButton("查找");
JButton add=new JButton("增加");
JButton delete=new JButton("删除");
JButton update=new JButton("修改");
contentPane.add(search);
contentPane.add(add);
contentPane.add(delete);
contentPane.add(update);
jmb.add(menu_shoping);
jmb.add(menu_user);
jmb.add(menu_store);
jmb.add(menu_exit);
jframe.setJMenuBar(jmb);
jframe.add(pane,BorderLayout.NORTH);
//jframe.add(contentPane,BorderLayout.SOUTH);
jframe.setSize(600, 500);
jframe.setLocation(300, 200);
jframe.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
jframe.setVisible(true);
}
public static void main(String[] args) {
ManageView();
}