Discussions
Categories
- 196.7K All Categories
- 2.2K Data
- 235 Big Data Appliance
- 1.9K Data Science
- 449.8K Databases
- 221.6K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 549 MySQL Community Space
- 477 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 532 SQLcl
- 4K SQL Developer Data Modeler
- 186.9K SQL & PL/SQL
- 21.3K SQL Developer
- 295.4K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.1K Development Tools
- 104 DevOps
- 3.1K QA/Testing
- 645.9K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 153 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 17 Java Essentials
- 158 Java 8 Questions
- 85.9K Java Programming
- 79 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.2K Java SE
- 13.8K Java Security
- 203 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 395 LiveLabs
- 37 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.6K Other Languages
- 2.3K Chinese
- 170 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 230 Portuguese
How to resize JPanel that uses GroupLayout

I have a program in which there are 3 combo boxes and their labels in a Group Layout. When the window first appears, only the first combo box contains options, so the window stretches only large enough to fit the labels and combo boxes. After a person selects an item from the first combo box, the 2nd one is filled with associated data. This associated data is sometimes causes the combo box to be too wide and expands beyond the window. I have been playing with the JPanel's setPreferredSize and setMaxSize, but nothing appears to be happening. Does anyone know how I'm supposed to change the width of the panel so that the drop-downs fit properly.
Here is the code I am currently trying to work on:
projectListener = function(){
var Project_Select = Project_Select_Field.getSelectedItem();
var proj;
var projSel;
var panelWidth = myPanel.getWidth();
var panelHeight = myPanel.getHeight();
var comboWidth = Project_Select_Field.getPreferredSize().width;
//if-statement to determine which list to use to populate.
newWidth = Project_Select_Field.getPreferredSize().width;
var diffWidth = 0;
if (newWidth > comboWidth) {
diffWidth = newWidth - cojoWidthbb
}
myPanel.setPreferredSize((panelWidth + diffWidth), panelHeight);
Does anyone know what I'm doing wrong?
Chris
Answers
-
Does anyone know what I'm doing wrong?
The general process involves 1) modifying the size hints, 2) invalidating the object and 3) causing it to be repainted.
The Java Tutorials has several chapters on how to work with UI objects. I suggest you read through them and actually try the examples.
https://docs.oracle.com/javase/tutorial/uiswing/layout/problems.html
If you specify new size hints for a component that is already visible, you then need to invoke the
revalidate
method on it, to make sure that its containment hierarchy is laid out again. Then invoke therepaint
method.