Avatar billede zulaff Nybegynder
15. marts 2007 - 12:53 Der er 1 løsning

JTable kolonnenavne vises ikke

Jeg skal konstruere en JTabel og bruger constructeren new JTable(data, columnNames), men jeg kan ikke få kolonnenavnene vist. Er der nogen der kan forklare hvorfor de ikke bliver vist, og hvordan jeg får dem vist? Min kode ser ud som følger:

public class RemedyAnalysisView extends JFrame {

    private JMenuItem open;
    private JMenuItem exit;
    JLabel messageLabel;
    JTable table;
    JPanel content;

    /**
    * Makes the frame of the program.
    * @param model
    *            RemedyAnalysisModel
    */
    public RemedyAnalysisView(RemedyAnalysisModel model) {
        JMenuBar menuBar = new JMenuBar();
        JMenu file = new JMenu("File");
        open = new JMenuItem("Open File...");
        exit = new JMenuItem("Exit");
        file.add(open);
        file.add(exit);
        JLabel dateLabel = new JLabel("Date from: (DD-MM-YYYY)");
        JTextField dateTextField = new JTextField(10);
        JButton dateRecalculateButton = new JButton("Recalculate");

        JPanel datePanel = new JPanel();
        datePanel.add(dateLabel);
        datePanel.add(dateTextField);
        datePanel.add(dateRecalculateButton);

        JPanel tablePanel = new JPanel();
       
        String[] columnNames = {"First Name", "Last Name", "Sport",
            "# of Years", "Vegetarian"};

        Object[][] data = {
            {"Mary", "Campione", "Snowboarding", new Integer(5),
                new Boolean(false)},
            {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
            {"Kathy", "Walrath", "Knitting", new Integer(2), new Boolean(false)},
            {"Sharon", "Zakhour", "Speed reading", new Integer(20),
                new Boolean(true)},
            {"Philip", "Milne", "Pool", new Integer(10), new Boolean(false)}};

        final JTable table = new JTable(data, columnNames);
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
        table.setEnabled(false);
        tablePanel.add(table);
       
       
        messageLabel = new JLabel();
        messageLabel.setForeground(new Color(255, 0, 0));
        JPanel messagePanel = new JPanel();
        messagePanel.add(messageLabel);

        content = new JPanel(new BorderLayout());
        // content.add(table);
        content.add(datePanel, BorderLayout.NORTH);
        content.add(tablePanel, BorderLayout.CENTER);
        content.add(messagePanel, BorderLayout.SOUTH);

        menuBar.add(file);

        this.setJMenuBar(menuBar);
        this.add(content);
        this.setTitle("Remedy Analysis");
        this.setSize(500, 500);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
Avatar billede zulaff Nybegynder
15. marts 2007 - 14:07 #1
Jeg har selv fundet ud af det: JTable skal pakkes ind i en JScrollPane, som så indsættes i JPanel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester