2011-07-03 104 views
0

表格不會顯示在窗口中。 Theres大綱,但沒有網格! 請幫忙!Jtable沒有顯示?

tetris.java

package com.diesal11; 

import com.diesal11.Board; 

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JScrollPane; 

public class Tetris extends JFrame{ 

    private static final long serialVersionUID = 1L; 

    public Tetris() { 
     this.setSize(200, 400); 
//  this.setResizable(false); 
     this.setTitle("Tetris"); 
     this.setDefaultCloseOperation(EXIT_ON_CLOSE); 

     Board board = new Board(this); 
     JScrollPane ScrollPane = new JScrollPane(board); 
     this.add(ScrollPane, BorderLayout.CENTER); 
    } 


    public static void main(String[] args) { 
     Tetris game = new Tetris(); 
     game.setLocationRelativeTo(null); 
     game.setVisible(true); 
    } 
} 

Board.java

package com.diesal11; 

import javax.swing.JPanel; 
import javax.swing.JTable; 

public class Board extends JPanel{ 

    private static final long serialVersionUID = 1L; 

    Tetris parent; 
    int BoardWidth = 10; 
    int BoardHeight = 20; 
    JTable Table; 

    public Board(Tetris parent){ 
//  setFocusable(true); 
     this.parent = parent; 
     this.Table = new JTable(this.BoardWidth, this.BoardHeight); 
     this.Table.setValueAt("aaa", 0, 0); 
     this.Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
     this.Table.getColumnModel().getColumn(1).setHeaderValue("Test"); 
    } 
} 

提前感謝! Im new to Java so很抱歉,如果它真的很簡單!

+0

也許缺少.setVisible(true)?有一段時間沒有玩過JTable,所以我只是把它作爲評論,因爲我不確定。 – Vache

+0

那是在「Main」方法的第一個文件中是否需要在JTable上再次使用它? – Diesal11

回答

3

您應該將表添加到JPanel中:

.... 
    this.Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
    this.Table.getColumnModel().getColumn(1).setHeaderValue("Test"); 
    this.add(Table); 

而且,慣例是用小寫字母開頭的變量名。

+0

THANKYOU! 呃,我覺得自己就像一個noob,那太簡單了! 感謝您指出變量命名的東西! – Diesal11

+1

沒問題。我所知道的是來自我自己的(悲傷)經歷...... – MByD

+1

你並不孤單+1 – mKorbel