Java代码需要限制用户输入

时间:2013-05-18 14:37:12

标签: java swing input restriction

我的代码遇到了严重的问题。

我有一个摆动的JDBC代码,我需要填写一个名称,地址和人员ID的表格,不同于表格的ID。我为它创建了一个摆动输入代码,但是,我希望它不包含ID号的可能性 - 因此,除了可以通过使用设置的名称和地址之外别无其他,而不是显示身份证。

有可能吗?

创建新合作伙伴,其中包含姓名,地址和IdentityNumber字符串,所有私人及其获取者和设置者都是公开的。

{

    protected final String FRAME_TITLE = "Vehicle Repository";
    private DatabaseHandler dbHandler;
    private JTabbedPane tabbedPane;
    private JTable partnerTable;
    private JpaControlledTableModel<Partner> partnerTableModel;

    @Override
    public void onCreate() {
        setDefaults(FRAME_TITLE);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        dbHandler = new DatabaseHandler();
        dbHandler.open();
        tabbedPane = new JTabbedPane();

        partnerTableModel = new AsyncFullQueryingTableModel<>(dbHandler.getPartnerJpaController(), dbHandler.getEntityClassesToControllersMap());
        parterTable = new JTable(partnerTableModel);

        tabbedPane.addTab("Partners", new JScrollPane(parterTable));
        getContentPane().add(tabbedPane, BorderLayout.CENTER);
    }

    @Override
    public JMenuBar createJMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JMenu("Data");
        menuBar.add(menu);
        JMenuItem menuItem;
        menuItem = new JMenuItem(newPartnerAction);
        menu.add(menuItem);
        return menuBar;
    }
    private Action newPartnerAction = new AbstractAction("New parnter") {
        @Override
        public void actionPerformed(ActionEvent e) {
            Partner partner = new Partner();
            EntityEditorDialog<Partner> editorDialog = EntityEditorDialogFactory.createEditorDialog(partner, dbHandler.getPartnerJpaController());
            editorDialog.setVisible(true);
            if (partner.getId() != null) {
                partnerTableModel.refresh();
            }
        }
    };

    private String getString(String message) {
        return JOptionPane.showInputDialog(rootPane, message, "Data input", JOptionPane.QUESTION_MESSAGE);
    }

    private Partner getPartner(String message) {
        Object[] partners = dbHandler.getPartnerJpaController().findEntities().toArray();
        if (partners.length == 0) {
            return null;
        } else {
            return (Partner) JOptionPane.showInputDialog(rootPane, message, "Data input", JOptionPane.QUESTION_MESSAGE, null, partners, partners[0]);
        }
    }

    @Override
    public void dispose() {
        dbHandler.close();
        super.dispose();
    }
}

    };

1 个答案:

答案 0 :(得分:2)

  

并且根本不显示ID

您可以从JTable中的显示中删除列:

table.removeColumn( table.getColumn(...) );