GridBagLayout: Comment définir la largeur de colonne fixe?

J'ai essayé de fixer la largeur de la colonne dans le code suivant pour les âges...Le truc c'est que quand j'ajoute une étiquette sur le panneau sur la gauche, puis la largeur est incrémenté automatiquement...et je Voudrais la largeur de colonne fixe...

Quelqu'un pourrait-il m'aider svp??

C'est le code:

import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Point;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import java.io.IOException;
public class CurrentItem extends JPanel{
private static JFrame currentScreen; 
public CurrentItem(JFrame p) { 
GridBagConstraints c = new GridBagConstraints();
//Borramos todo lo que haya en la pantalla 
this.removeAll();
this.revalidate();
currentScreen = p;     
this.setBackground(Color.LIGHT_GRAY);      
this.setLayout(new GridBagLayout());  
currentScreen.add(this);       
//--->
Panel leftPanel = new Panel(); 
leftPanel.setBackground(Color.BLACK);
c.weightx = 1.5;
c.weighty = 1;
//c.fill = GridBagConstraints.BOTH;      
this.add(leftPanel, c);
//<---
//--->
Panel secondPanel = new Panel(); 
secondPanel.setBackground(Color.green);
c.weightx = 0.25;
c.weighty = 1;
c.fill = GridBagConstraints.BOTH;
this.add(secondPanel, c);
//<---     
//--->
Panel rightPanel = new Panel(); 
rightPanel.setBackground(Color.CYAN);
c.weightx = 1.5;
c.weighty = 1;
c.fill = GridBagConstraints.BOTH;
this.add(rightPanel, c);
//<---
currentScreen.setVisible(true);
this.requestFocusInWindow();         
}
}
N'utilisez pas de Panel, qui est un composant AWT. Utilisation JPanel qui est le composant Swing.
Au lieu de l'ajout de ces énormes import déclarations, vous devriez ai ajouté un main méthode, pour quelqu'un d'essayer avec

OriginalL'auteur Marie | 2014-07-16