2016-11-18 11 views
-1

私は同じトピックについて他の記事を読んでいますが、私は正確に欲しかったものを得られませんでした。 は、誰もがtellhow私は生の名前の "selectionné" 事前にJTableのチェックボックスを追加してください

 int linenumber=0; 
 
     JFileChooser filechooser=new JFileChooser(); 
 
     int aa=filechooser.showOpenDialog(null); 
 
     file = filechooser.getSelectedFile(); 
 
     ///-------------------------------------------- 
 
     String col[]={"Les Requéte","selectionné"}; 
 
     DefaultTableModel tableModel = new  DefaultTableModel(null,col); 
 
     tableModel.setColumnIdentifiers(col); 
 
     table.setModel(tableModel); 
 
     ///------------- 
 
     
 
     if (aa== JFileChooser.APPROVE_OPTION){ 
 
      try { 
 
       file= filechooser.getSelectedFile(); 
 
       in = new BufferedReader(new FileReader(file-)); 
 
       String line = null; 
 
       while ((line = in.readLine()) != null) { 
 
      linenumber++; tableModel.addRow(line.split(", "));  
 
       } 
 
    filereader.close();

おかげでJTableのにチェックボックスを追加することができます。

+0

1と結果の実装へのアプローチは何でしたか? – KyleKW

+0

SOまたはGoogleで検索してください。これは既に回答済みです。 – brummfondel

+0

'私は同じ話題の他の記事を読むが、私が正確に望んでいたものは得られなかった。私たちはあなたが試したことを推測することはできませんし、同じ提案を繰り返す時間を費やしたくありません。そして、あなたが望むものを「正確に」得ることは決してありません。アイデアは、あなたがあなたの正確な要件のために提案を理解し、コードをカスタマイズすることです。問題がある場合は、コードに関する具体的な質問をしてください。 – camickr

答えて

0

独自のテーブルモデルを作成する必要があります。 DefaultTableModelでは、チェックボックスとしてブール値をレンダリングしていないよう:

public static void main(String[] args) { 

    JFrame frame = new JFrame("Editable Color Table"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JTable table = new JTable(new MyTableModel()); 

    JScrollPane scrollPane = new JScrollPane(table); 
    frame.add(scrollPane, BorderLayout.CENTER); 
    frame.setSize(400, 150); 
    frame.setVisible(true); 
} 

static class MyTableModel extends AbstractTableModel { 

    Object rowData[][] = { { "1", Boolean.TRUE }, { "2", Boolean.TRUE }, { "3", Boolean.FALSE }, 
      { "4", Boolean.TRUE }, { "5", Boolean.FALSE }, }; 

    String columnNames[] = {"Les Requéte","selectionné"}; 

    public int getColumnCount() { 
     return columnNames.length; 
    } 

    public String getColumnName(int column) { 
     return columnNames[column]; 
    } 

    public int getRowCount() { 
     return rowData.length; 
    } 

    public Object getValueAt(int row, int column) { 
     return rowData[row][column]; 
    } 

    public Class getColumnClass(int column) { 
     return (getValueAt(0, column).getClass()); 
    } 

    public void setValueAt(Object value, int row, int column) { 
     rowData[row][column] = value; 
    } 

    public boolean isCellEditable(int row, int column) { 
     return (column != 0); 
    } 
} 
+0

しかし、AbstractTableModelを拡張する必要はありません。 DefaultTableModelを拡張し、 'getColumnClass(...)'メソッドをオーバーライドするだけです。それでは、 – camickr

+0

@camickrの 'addRow(...)'メソッドを使うことができます! –

1
linenumber++; tableModel.addRow(line.split(", "));  

コードの行は、TableModel内に複数の文字列を追加しようとしていること。チェックボックスが必要な場合は、StringとBooleanを追加する必要があります。

TableModelを作成するときに、getColumnClass()メソッドをオーバーライドして、適切なレンダラー/エディタを使用できるようにする必要があります。あなたはgetColumnClass(...)メソッドをオーバーライドする必要があるモデルを作成する際

だから:

DefaultTableModel model = new DefaultTableModel(columnNames,) 
    { 
     @Override 
     public Class getColumnClass(int column) 
     { 
      return column == 0 ? String.class : Boolean.class; 
     } 
    }; 

を使用すると、テーブルにデータを追加すると、あなたのコードのようなものである必要があります:

Object[] row = {"someText", Boolean.FALSE}; 
model.addRow(row); 

だからあなたは意志ブール値(TRUEまたはFALSE)に使用する値を調べるためにデータを解析する必要があります。

0

int linenumber=0; 
 
     JFileChooser filechooser=new JFileChooser(); 
 
     int aa=filechooser.showOpenDialog(null); 
 
     file = filechooser.getSelectedFile(); 
 
     ///-------------------------------------------- 
 
     String col[]={"Les Requéte","selectionné"}; 
 
     DefaultTableModel tableModel = new  DefaultTableModel() 
 
     { 
 
      public Class getColumnClass(int column){ 
 
      return column == 0?String.class :Boolean.class; 
 
      } 
 
     }; 
 
     tableModel.setColumnIdentifiers(col); 
 
     table.setModel(tableModel); 
 
Object [] row={Bookean.FALSE}; 
 
     ///------------- 
 
     
 
     if (aa== JFileChooser.APPROVE_OPTION){ 
 
      try { 
 
       file= filechooser.getSelectedFile(); 
 
       in = new BufferedReader(new FileReader(file-)); 
 
       String line = null; 
 
       while ((line = in.readLine()) != null) { 
 
        linenumber++; 
 
        tableModel.addRow(line.split(", ")); 
 
        tableModel.addRow(row): 
 
        
 
       } 
 
    filereader.close();

関連する問題