62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
public class Test extends JFrame {
private JTable table;
private DefaultTableModel cardModel;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame
*/
public Test() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
table = new JTable();
scrollPane.setViewportView(table);
//
initTable();
tableVal();
table.addMouseListener(new MouseSelect());
}
private void initTable(){
cardModel = new DefaultTableModel(6,3);
table.setModel(cardModel);
table.getColumnModel().getColumn(0).setHeaderValue("1");
table.getColumnModel().getColumn(1).setHeaderValue("2");
table.getColumnModel().getColumn(2).setHeaderValue("3");
table.setRowHeight(25);
}
public void tableVal() {
String[] content={"性别","星期"};
JComboBox contentType = new JComboBox();
for(int i=0;i<content.length;i++){
contentType.addItem(content[i]);
}
DefaultCellEditor contentcell = new DefaultCellEditor(contentType);
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setCellEditor(contentcell);
}
private class MouseSelect implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
Object target = e.getSource();
if (target instanceof JTable) {
int row=table.getSelectedRow();
int col=table.getSelectedColumn();
String name=table.getValueAt(row, col).toString();
if(col==0){
if(name.equals("性别")){
String[] data={"男","女"};
JComboBox dataBox = new JComboBox();
for(int i=0;i<data.length;i++){
dataBox.addItem(data[i]);
}
DefaultCellEditor dataCell = new DefaultCellEditor(dataBox);
TableColumnModel dataTcm = table.getColumnModel();
dataTcm.getColumn(1).setCellEditor(dataCell);
}
if(name.equals("星期")){
String[] date={"星期1","星期2","星期3","星期4"};
JComboBox dateBox = new JComboBox();
for(int i=0;i<date.length;i++){
dateBox.addItem(date[i]);
}
DefaultCellEditor dateCell = new DefaultCellEditor(dateBox);
TableColumnModel dateTcm = table.getColumnModel();
dateTcm.getColumn(1).setCellEditor(dateCell);
}
}
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
}
package com.esen.chenf.test;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
public class Test23 extends JFrame {
private JTable table;
private DefaultTableModel cardModel;
/**
* Launch the application
* @param args
*/
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test23 frame = new Test23();
frame.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame
*/
public Test23() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
table = new JTable();
scrollPane.setViewportView(table);
//
initTable();
tableVal();
// table.addMouseListener(new MouseSelect());
}
private void initTable() {
cardModel = new DefaultTableModel(6, 3);
table.setModel(cardModel);
table.getColumnModel().getColumn(0).setHeaderValue("1");
table.getColumnModel().getColumn(1).setHeaderValue("2");
table.getColumnModel().getColumn(2).setHeaderValue("3");
table.setRowHeight(25);
}
public void tableVal() {
String[] content = { "性别", "星期" };
JComboBox contentType = new JComboBox();
for (int i = 0; i < content.length; i++) {
contentType.addItem(content[i]);
}
DefaultCellEditor contentcell = new DefaultCellEditor(contentType);
contentcell.addCellEditorListener(new MouseSelect());
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setCellEditor(contentcell);
}
private class MouseSelect implements CellEditorListener {
public void editingCanceled(ChangeEvent e) {
}
public void editingStopped(ChangeEvent e) {
Object target = e.getSource();
if (target instanceof DefaultCellEditor) {
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
String name = "";
try {
name = table.getValueAt(row, col).toString();
}
catch (Exception e1) {
}
if (col == 0) {
if (name.equals("性别")) {
String[] data = { "男", "女" };
JComboBox dataBox = new JComboBox();
for (int i = 0; i < data.length; i++) {
dataBox.addItem(data[i]);
}
DefaultCellEditor dataCell = new DefaultCellEditor(dataBox);
TableColumnModel dataTcm = table.getColumnModel();
dataTcm.getColumn(1).setCellEditor(dataCell);
}
if (name.equals("星期")) {
String[] date = { "星期1", "星期2", "星期3", "星期4" };
JComboBox dateBox = new JComboBox();
for (int i = 0; i < date.length; i++) {
dateBox.addItem(date[i]);
}
DefaultCellEditor dateCell = new DefaultCellEditor(dateBox);
TableColumnModel dateTcm = table.getColumnModel();
dateTcm.getColumn(1).setCellEditor(dateCell);
}
}
}
}
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}