2010-11-07 4 views
3


J'ai créé un jtable sous forme de gui dans intellij et je ne vois aucune donnée. La chose la plus étrange est que lorsque je l'utilise sans créer un formulaire dans intellij le code fonctionne.
i utilisé l'exemple le plus commun
String[] columnNames = {"First Name", "Last Name"};
Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}
puis
JTable table = new JTable(data, columnNames);
Mais je reçois pas de données.
Est-ce dû au gestionnaire de disposition?
une aide pour continuer à travailler avec intellij gui et jtable?
tout bon jtable + gui forme intellij exemple?Travailler avec JTable dans IntelliJ IDEA

Répondre

9

Lorsque vous utilisez Designer GUI IDEA, JTable est créé automatiquement pour vous, si vous avez new JTable(...) dans votre code, il remplace l'objet de table créé par IDEA et toutes les propriétés configuré pour la table dans le concepteur sera perdu.

Donc, vous avez 2 approches ici. Le premier est de s'appuyer sur IDEA pour créer la table et définir ses propriétés, puis utiliser table.setModel(dataModel); pour fournir des données à votre table à partir du dataModel.

La deuxième approche consiste à créer la table dynamiquement à partir de votre code, puis à ajouter cette table dans le panneau JScrollPan existant ou dans un autre panneau du formulaire via scrollPane.setViewportView(myTable);.

IDEA a également une approche plus avancée appelée Custom Create. Si vous activez cette case à cocher pour la JTable sur le formulaire, IDEA ajoute la méthode createUIComponents() à la classe liée où vous créez manuellement ce composant comme ... = new JTable(...). Vous pouvez download the complete sample project et expérimenter différentes approches.

+0

Merci !!! Custom Create a fait le travail. – Jeb

1

Cela fonctionne IntelliJ pour moi:

package swing; 

import javax.swing.*; 

/** 
* JTableTest 
* User: Michael 
* Date: 11/7/10 
* Time: 4:49 PM 
*/ 
public class JTableTest 
{ 
    public static void main(String[] args) 
    { 
     JFrame frame = new JFrame("JTable Test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JTable table = createTable(); 
     JScrollPane scrollPane = new JScrollPane(table); 
     frame.getContentPane().add(scrollPane); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static JTable createTable() 
    { 
     String[] columnNames = {"First Name", "Last Name"}; 
     Object[][] data = {{"Kathy", "Smith"},{"John", "Doe"}}; 
     JTable table = new JTable(data, columnNames); 
     table.setFillsViewportHeight(true); 

     return table; 
    } 
} 
Questions connexes