【问题标题】:jFormattedText inside a jTablejTable 中的 jFormattedText
【发布时间】:2014-02-26 10:01:05
【问题描述】:

我一直在尝试在 jTable 中插入 jFormatted Text。

但是,到目前为止,我将其作为输出。

javax.swing.JFormattedTextField[,0,0,0x0,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.sun.java.swing。 plaf.windows.XPStyle$XPFillBorder@12bd4a6,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax。 swing.plaf.ColorUIResource[r=109,g=109,b=109],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2], selectedTextColor=javax.swing.plaf.ColorUIResource[r=255,g=255,b=255],selectionColor=javax.swing.plaf.ColorUIResource[r=51,g=153,b=255],columns=0, columnWidth=0,command=,horizo​​ntalAlignment=LEADING] 20

我使用的代码如下:

    DefaultTableModel dm = (DefaultTableModel) jTable1.getModel();  
    MaskFormatter mf1;
   try {
       mf1 = new MaskFormatter("*##-##-####-*****");

    JFormattedTextField abc1 = new JFormattedTextField(mf1);



  //        String header[] = new String[]{"ACCOUNT NUMBER","Col2","AMOUNT PAYABLE"};  
  //        dm.setColumnIdentifiers(header);  
  //        jTable1.setModel(dm);


    //TableColumn abc7 = jTable1.getColumnModel().getColumn(0);
    //abc1.setValue("");
    Vector<Object> data = new Vector<Object>();  

    data.add(abc1);  
    data.add(20);  
    data.add(false);  

    dm.addRow(data);  

     TableColumn abc2 = jTable1.getColumnModel().getColumn(0);
    jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(abc1));
    DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
    renderer.setToolTipText("Click to change the values");
    DefaultCellEditor defaultCellEditor=new DefaultCellEditor(abc1);
    abc2.setCellEditor(defaultCellEditor);
    abc2.setCellRenderer(renderer);
    jTable1.setIntercellSpacing(new Dimension(10, 4));
    jTable1.repaint();

    //abc7.setCellEditor(new DefaultCellEditor(abc1));
   // jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(abc1));

   } catch (Exception ex) {
       java.util.logging.Logger.getLogger(Multiple_Utility_Bill.class.getName()).log(Level.SEVERE, null, ex);
       log.debug(ex);
   }

谁能教我如何将格式化的文本字段输入到 jTable 中?

【问题讨论】:

  • 下面的答案是否回答了您的问题?如果是这样,那么通过单击问题旁边的复选标记来接受它作为答案是正常的。

标签: java swing jtable tablecelleditor jformattedtextfield


【解决方案1】:

无需在您的表格中添加JFormattedTextField。只需将要在 JFormattedTextField 中表示的值添加到您的表模型中。

您应该实现自己的TableCellRenderer,它应该从方法中返回JFormattedTextField 组件

Component getTableCellRendererComponent(JTable table, Object value,
                                        boolean isSelected, boolean hasFocus,
                                        int row, int column);

然后将渲染器设置为您的表格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2012-02-09
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多