Comment définir la largeur d'un JTable
J'ai une JTable dans un JScrollPane. Je veux que la largeur minimale pour être autour de 600 son d'une grande table. J'ai essayé de réglage de la taille minimale sur la table, le défilement du volet, et le panneau de lui-même. La taille ne change pas du tout, ce qui me manque? Il est difficile de google ce parce que tout ce qui arrive est de savoir comment définir la largeur des colonnes.
Voici le code:
class SearchResults extends JPanel {
/**
* Create the panel.
*/
public SearchResults() {
setMinimumSize(new Dimension(640, 480));
String[][] data= new String[][] {
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"},
{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "VIEW BUTTON"}};
String[] col = new String[] {
"Last Name", "First Name", "Middle Initial", "Phone Number", "Email", "Project Title", "Project Description", "Amount", "Date Approved", "Date Completed", "College", "Faculty Mentor Name", "Co Grantee", "Major", "Travel Required", "Travel Purpose", "Travel Cost", "Travel Start Date", "Travel End Date", "View"};
JTable table = new JTable(data,col);
table.setMinimumSize(new Dimension(600,200));
JTableHeader header = table.getTableHeader();
JScrollPane pane = new JScrollPane(table);
pane.setMinimumSize(new Dimension(600, 23));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
add(pane);
}
}
Et c'est là que je l'ajouter à la JFrame:
public class Test extends JFrame
{
public static void main(String[] args)
{
Test test = new Test();
test.run();
}
public Test()
{
super("JAVA TEST!");
}
private void run()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SearchResults resultsPanel = new SearchResults();
resultsPanel.setMinimumSize(new Dimension(600,200));
add(resultsPanel);
setSize(800,600);
setVisible(true);
}
}
OriginalL'auteur Steve's a D | 2012-11-07
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs problèmes:
Consequestly, il y a plusieurs vis pour ajuster (après la suppression de tous les setXXSize appels 🙂 )
Dans le code (et à l'aide de JXTable de la SwingX projet parce qu'il a déjà api pour la seconde 🙂 )
Modifier
Pour résoudre les 80% (et un petit teaser pour MigLayout 🙂 )
OriginalL'auteur kleopatra
eu quelques Problèmes avec ce genre de choses aussi. utiliser le
setPreferedSize(new Dimension(800,600));
trop.cela pourrait résoudre votre problème
sans jamais appeler l'une de l'setXXSize de composants: quelques raisons
Comment voulez-vous suggérer-je résoudre le problème de largeur?
même si il semble être l'aider maintenant, il est demandé pour des douleurs à l'avenir. N'ont tout simplement pas, jamais.
Je ne dis pas que vous avez tort. Je me demande quelle est la bonne façon de réaliser ce que je suis d'essayer.
OriginalL'auteur SomeJavaGuy
Mise en page des questions. IDE comme Netbeans ou Eclipse donne les mains libres conception de mise en page par glisser-déposer.
Vous pouvez obtenir encore par le code une fois que vous comprenez Swing mises en page. Quelques plus utilisés mises en page, je suis de mentionner ici
dans le vôtre, si vous ajoutez
panel.setLayout( new GridLayout(1,1));
, table se fixe à l'intérieur du cadre.Aussi vous avez besoin de ne pas prolonger
JPanel
ouJFrame
sauf si vous écraser quelque chose ou ajouter plus de choses à l'image. Pratique pour apprendre.OriginalL'auteur vels4j