Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 763|回复: 0

帮小妹看看这个是什么问题?或你有更好方法解决(谁的方

[复制链接]

该用户从未签到

发表于 2011-10-29 08:22:33 | 显示全部楼层 |阅读模式
java code
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);
            }
            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);
                            }
                            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);
                            }
                            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
            
        }
         
      }
   
}


想实现的功能是: 点击JTable的任意行第一列“性别”时 第二列的该行显示“男”“女”
点击“星期”时,显示"星期1","星期2","星期3","星期4"   
不要拘泥上面的例子,寻找好的方法 代码最好稳定 高效 简洁 ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-6 03:25 , Processed in 0.434029 second(s), 38 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表