2017-09-19 6 views
0

Ich möchte die Höhe eines Fortschrittsbalkens steuern. Ich verwende den folgenden Code ein:Java Swing Kontrollhöhe von JProgressBar

JPanel panel = new JPanel(new GridLayout(1,2)); 
JLabel label = new JLabel("Some text"); 
JPanel jpb = new JPanel(new BorderLayout()); jpb.setBackground(Color.WHITE); 
JProgressBar progressBar = new JProgressBar(); 

//progressBar.setPreferredSize(new Dimension(20,)); 
progressBar.setForeground(Color.RED); 
progressBar.setPreferredSize(new Dimension(20,3)); 
progressBar.setValue(40); 
progressBar.setStringPainted(true); 

jpb.add(progressBar, BorderLayout.CENTER); 
panel.add(label); 
panel.add(jpb); 

Aber die progressbar klebt wie ein Drache aus. Bitte empfehle eine Lösung.

+1

Sie fügen den Fortschrittsbalken dem 'CENTER' eines BorderLayout hinzu, so dass es den gesamten verfügbaren Speicherplatz benötigt. Sie müssen die Verwendung von BorderLayout und GridLayout besser verstehen. Lesen Sie das Swing-Lernprogramm auf [Layout Manager] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html), um weitere Informationen und Arbeitsbeispiele zu erhalten. Vergessen Sie vielleicht Ihr GridLayout und verwenden Sie einfach den Standard-BorderLayout-Manager des Rahmens und fügen Sie den Fortschrittsbalken dem BorderLayout.PAGE_START hinzu und fügen Sie dann Ihren zweiten Bereich dem BorderLayout.CENTER hinzu. – camickr

Antwort

0

Ich würde vorschlagen, GridBagLayout zu verwenden.
1. Verwenden Sie ein Jpanel und setzen Sie Borderlayout (bereits in Ihrem Code getan)
2. Erstellen Sie ein anderes JPanel und GridBagLayout mit 1 Zeile und 3 Spalten darin festlegen.
3. Post 2nd JPanel in der Mitte des 1. JPanel.
4. Fügen Sie Ihre JProgressBar bis 1. Spalte
5. Stellen Sie die Größe der Spalte nach Ihren visuellen Bedürfnisse für Breite und Höhe des JProgressBar

Hope this hilfreich sein wird. :-)