JTable Header wird nich richtig angezeigt ?

Code46

Erfahrenes Mitglied
Hi Leute,

Ich habe in meinem Java Code einen JTable hinzugefügt, jedoch wird dies in meinem JPanel nicht richtig angezeigt. Könnt ihr mir vielleicht ein hinweis geben ?


Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author SerSa
 */
public class Test extends JFrame implements ActionListener{

    public static final DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    
    public final JButton btnclose = new JButton("Close");
    public final JTextArea txtarea = new JTextArea(5,10);
    


    
     public Test() throws Exception {
        super("Touch Record"); 
        String[] columnNames = {"First Name",
                                "Last Name",
                                "Sport",
                                "# of Years",
                                "Vegetarian"};
 
        Object[][] data = {
        {"Kathy", "Smith",
         "Snowboarding", new Integer(5), new Boolean(false)},
        {"John", "Doe",
         "Rowing", new Integer(3), new Boolean(true)},
        {"Sue", "Black",
         "Knitting", new Integer(2), new Boolean(false)},
        {"Jane", "White",
         "Speed reading", new Integer(20), new Boolean(true)},
        {"Joe", "Brown",
         "Pool", new Integer(10), new Boolean(false)}
        };
        final JTable table = new JTable(data, columnNames);
        
        
        
        
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
 
        final JPanel north = new JPanel();
        final JPanel south = new JPanel();
        final JPanel east = new JPanel();
        final JPanel west = new JPanel();
        final JPanel center = new JPanel();
        
        add("North", north);
        add("South", south);
        add("East", east);
        add("West", west);
        add("Center", center);
        
       
        north.setBorder(BorderFactory.createTitledBorder("Date&Time Display"));
        final BoxLayout layout = new BoxLayout(north, BoxLayout.X_AXIS);
        final JLabel datetime = new JLabel("");
        datetime.setFont(new Font("Verdana", Font.PLAIN, 50));
        north.add(datetime);
        
        
        center.setBorder(BorderFactory.createTitledBorder("Attendence Record"));
        center.setLayout(new BorderLayout());
        center.add(table);
       // table.setText(IsmbSnepConnection.received);
            
        
        south.setBorder(BorderFactory.createTitledBorder("Selection"));
        south.add(btnclose);
        final BoxLayout la = new BoxLayout(south, BoxLayout.X_AXIS);
        
        btnclose.addActionListener(this);
        setSize(700, 600);
        setVisible(true);
        
        new Timer().scheduleAtFixedRate(new TimerTask()
        {
            @Override
            public void run() {
                datetime.setText(dateFormat.format(new Date()));
            } 
        }, 0, 100);
    }
     
     
    public static void main(String[] args) throws Exception {
        final Test me = new Test();
        //PhoneToSender f = new PhoneToSender();
    }

    
    @Override
    public void actionPerformed(ActionEvent e) {

        
       
        
       
    }
}








Danke
 
Hi
Aus der JavaDoc der Klasse JTable:
Note that if you wish to use a JTable in a standalone view (outside of a JScrollPane) and want the header displayed, you can get it using getTableHeader() and display it separately.
JTables haben nur dann automatisch einen Header, wenn sie innerhalb einer JScrollPane angezeigt werden.
 
Danke für deine hilfe.Muss ich das denn einzelet aufrufen.


center.add(table);
center.add(getTableHeader());
 
Zurück