Java Swing JPanel, който не разтяга ширината

Добре, така че имам JPanel, който ще има два JLabel вътре в него, изглежда не мога да разбера оформление или начин да го направя така, че и двата етикета да са подравнени вляво и да заемат само пространството, необходимо за съдържание, повечето оформления, които опитвам, показват само един от обектите или показват и двата пространства равномерно по цялата ширина, всяка помощ ще бъде оценена!

Опитах се да задам максимален и предпочитан размер на панела без успех =/ И двата етикета са на един и същ „ред“


person Tazmanian Tad    schedule 07.11.2014    source източник
comment
Можете да добавите друг панел към вашия JPanel с още едно оформление. (Композитен дизайнерски модел основно).   -  person Dylan Meeus    schedule 07.11.2014
comment
GridBagLayout може да го направи... Помислете дали да предоставите пример за изпълнение, който демонстрира вашия проблем. Това ще доведе до по-малко объркване и по-добри отговори. Също така погледнете Трябва ли да избягвам използването на set(Preferred|Maximum|Minimum)Size методи в Java Swing?   -  person MadProgrammer    schedule 07.11.2014


Отговори (2)


..така че и двата етикета са подравнени вляво

Поставете го в панел с оформление:

new FlowLayout(FlowLayout.LEFT) 

Или (локализиран)

new FlowLayout(FlowLayout.LEADING)
person Andrew Thompson    schedule 07.11.2014
comment
Не можах да намеря оформление на решетъчната чанта за показване на втория компонент в панела, така че опитах това и работи перфектно! - person Tazmanian Tad; 07.11.2014

Можете да използвате GridBagLayout например...

Squished

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
add(shrished, gbc);
gbc.gridx++;
gbc.weightx = 1;
add(shrishing, gbc);

„Уау“, казвате вие, „това изглежда сложно, защо да го правя, когато другите методи изглеждат по-лесни“... добър въпрос, бихте могли да направите и това...

На север

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.NORTHWEST;
add(shrished, gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.weighty = 1;
add(shrishing, gbc);

или това...

На юг

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.SOUTHWEST;
add(shrished, gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.weighty = 1;
add(shrishing, gbc);

С гъвкавостта идва и сложността, но тя наистина се свежда до точно това, което искате да постигнете...

person MadProgrammer    schedule 07.11.2014