2017-12-06 12 views
0

私はJTableを持っていて、行間に行を表示できなかったり、行がない可能性があります。わかりません。JTableの行間に行を追加するには?

My JTable

は、どのように私はそれがこのように見えるようにすることができます:ここに私のJTableはありますか?

public class NodePropertyWindow extends JFrame{ 

public NodePropertyWindow(CytoVisProject cytoVisProject, CyNode node){ 
    this.cytoVisProject = cytoVisProject; 
    this.adapter = cytoVisProject.getAdapter(); 
    this.node = node; 
    this.setMinimumSize(new Dimension(400, 400)); 
    this.setPreferredSize(new Dimension(400,400)); 
    this.setTitle("Node Property Window"); 
    this.setVisible(true); 
    this.initializeTable(); 
} 

public void initializeTable(){ 
    CyApplicationManager manager = this.adapter.getCyApplicationManager(); 
    CyNetworkView networkView = manager.getCurrentNetworkView(); 
    CyNetwork network = networkView.getModel(); 
    CyTable cyTable = network.getDefaultNodeTable(); 

    FilterUtil filterUtil = new FilterUtil(network, cyTable); 
    Map<String, Object> sampleRow = cyTable.getAllRows().get(filterUtil.findIndex(filterUtil.getAllNodes(), node)).getAllValues(); 
    Collection<Object> values = sampleRow.values(); 
    Set<String> attributeNames = sampleRow.keySet(); 

    String[] columnNames = {"Attribute Name", "Value"}; 
    this.data = new Object[values.size()][2]; 
    Object[] attributeNamesObjects = attributeNames.toArray(); 
    Iterator iterator = values.iterator(); 

    for(i=0; i<values.size(); i++){ 
     this.data[i][0] = attributeNamesObjects[i]; 
     Object object = iterator.next(); 
     this.data[i][1] = object; 

    } 
    // Above part is about the content of JTable 
    TableModel model = new DefaultTableModel(this.data, columnNames){ 
     public boolean isCellEditable(int row, int column){ 
      return false; 
     } 
    }; 

    this.table = new JTable(this.data, columnNames); 
    this.table.setModel(model); 
    this.table.setPreferredScrollableViewportSize(new Dimension(500,300)); 
    this.table.setFillsViewportHeight(true); 
    this.table.setLayout(new BorderLayout()); 
    Container container = new Container(); 
    container.setLayout(new BorderLayout()); 
    container.add(table.getTableHeader(), BorderLayout.PAGE_START); 
    container.add(table, BorderLayout.CENTER); 
    this.add(container); 
} 
} 

この部分はJFrameのを拡張するクラスの内部にある:

Other one

は、ここに私のコードです。

+0

[テーブルの使用方法](https://docs.oracle.com/javase/tutorial/uiswing/components/table.html)から始めます。私はこれが道具で使われるルックアンドフィールであると信じています – AxelH

+0

すぐに役立つように、[MCVE]または[ショート、自己包含、正しい例](http://www.sscce.org/)を投稿してください。 –

+0

@AxelHありがとう、私はそれを読むが、答えを見つけることができませんでした。 – JollyRoger

答えて

0

これを入れてください。私はJtableグリッド線がデフォルトの色として白であるため、黒色を選択します。

table.setGridColor(Color.BLACK) 
関連する問題