JTable单元格只能输入数字

今天在CSDN上看见有人问这个问题就找了一下,呵呵贴出来,也许对别人有点帮助

 import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TableNum extends JFrame {

    public TableNum() {
        super();
        this.init();
        this.setSize(new Dimension(400,200));
    }

    private void init() {
        this.getContentPane().add(new JTable(new DefaultTableModel() {
            @SuppressWarnings("unchecked")
            public Class getColumnClass(int c) {
                return Integer.class;
            }

            public int getColumnCount() {
                return 10;
            }

            public int getRowCount() {
                return 10;
            }
        }));
    }

    public static void main(String[] args) {
        TableNum l = new TableNum();
        l.setVisible(true);
        l.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}
下面一个例子功能是一样的比上面的复杂点

import java.awt.Dimension;
import java.awt.BorderLayout;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Frame1 extends JFrame {
    JPanel contentPane;
    Object[][] object = { {"aaa", new Integer(1)}, {"bbb", new Integer(1)},
                        {"ccc", new Integer(1)}, {"ddd", new Integer(1)}
    };
    String[] name = {"a", "b"};
    JTable table=new JTable(new DefaultTableModel(object,name){
        public void setValueAt(Object aValue, int rowIndex, int columnIndex)
 
        {
            if (columnIndex == 1) {
                Integer num = null;
                try {
                    num = Integer.parseInt((String) aValue);
                } catch (Exception ex) {
                    javax.swing.JOptionPane.showMessageDialog(null, "只能输入数字!");
                    return;

                }
            }
           
            super.setValueAt(aValue,rowIndex,columnIndex);
            this.fireTableDataChanged();
           
        }
    });

    public Frame1() {
     this.setSize(new Dimension(500,300));
     this.setVisible(true);
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
public static void main(String args[]){
 new Frame1().setVisible(true);
}
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(new BorderLayout());
        setSize(new Dimension(600, 550));
        this.add(table,BorderLayout.CENTER);

    }

}
呵呵上面代码是找的网上的.感谢那位哥们

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

小宏

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值