Discussions
Categories
- 196.9K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 545 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.9K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.6K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 441 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 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.