Znak nowej linii w aplecie

0

W jaki sposób mogę zrobić znak nowej linii w applecie?

Nie chodzi mi o System.getProperty("line.separator"); tylko o odstęp pomiędzy np. dwoma JButtonami. Żebym mógł ustalić np. 2-3 linie odstępu pomiedzy nimi.

0

Znakiem nowej linii tak czy tak tego nie zrobisz. Po prostu ustaw w layoucie, którego używasz taką przestrzeń pomiędzy nimi.

0

Dzieki, zrobiłem tak jak mówiłeś i wszystko sobie ułożylem jak trzeba.

Jedynie jest jest problem - jeden z komponentów (JComboBox) zajmuje taką powierznie jaką znajdzie (najwiekszą możliwą). Co mogę zrobić aby miał normalny rozmiar? setSize nie działa. Dodam, że inne komponenty jak np. Label albo JButton wyświetlają sie poprawnie.

0

Jakiego używasz layoutu?

0

GroupLayout

Wydał mi sie najodpowiedniejszy

0

Wykombinowałem: należy ustawić komponenty na PREFERRED SIZE.

Ale pojawił się inny problem: komponenty są wyśrodkowane zgodnie z moim zyczeniem, aczkolwiek są one wyśrodkowane w stosunku do pewnej przestrzeni (takiej że akurat tam sie mieszczą), natomiast ta przestrzeń jest już po lewej stronie appletu, a nie na środku.

JPanel cp=new JPanel();

String[] s = new String[2];
s[0] = "Price";
s[1] = "Name";

JComboBox c = new JComboBox(s);

JProgressBar pb=new JProgressBar(17, 23);
pb.setValue(20);
pb.setStringPainted(true);

JLabel l=new JLabel("Name of product");

JButton b=new JButton("Send a message");
b.setEnabled(true);

cp.add(c);
cp.add(pb);
cp.add(l);
cp.add(b);

GroupLayout layout = new GroupLayout(cp);
cp.setLayout(layout);

layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);

layout.setHorizontalGroup(
   layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
           .addComponent(c,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
           .addComponent(pb,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
           .addComponent(l,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
           .addComponent(b,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
   layout.createSequentialGroup()
      .addComponent(c,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
      .addComponent(pb,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
      .addComponent(l,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
      .addComponent(b,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE,
                        GroupLayout.PREFERRED_SIZE)
);

Co mogę zrobić żeby elementy sie wyśrodkowały w stosunku do appletu?

0
MisiekZŁodzi napisał(a)

Wykombinowałem: należy ustawić komponenty na PREFERRED SIZE.

Ale pojawił się inny problem: komponenty są wyśrodkowane zgodnie z moim zyczeniem, aczkolwiek są one wyśrodkowane w stosunku do pewnej przestrzeni (takiej że akurat tam sie mieszczą), natomiast ta przestrzeń jest już po lewej stronie appletu, a nie na środku.


JPanel cp=new JPanel();

String[] s = new String[2];
s[0] = "Price";
s[1] = "Name";

JComboBox c = new JComboBox(s);

JProgressBar pb=new JProgressBar(17, 23);
pb.setValue(20);
pb.setStringPainted(true);

JLabel l=new JLabel("Name of product");

JButton b=new JButton("Send a message");
b.setEnabled(true);

cp.add(c);
cp.add(pb);
cp.add(l);
cp.add(b);

GroupLayout layout = new GroupLayout(cp);
cp.setLayout(layout);

layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);

layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(c,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(pb,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(l,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(b,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE))
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(c,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(pb,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(l,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(b,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE,
GroupLayout.PREFERRED_SIZE)
);


> 
> Co mogę zrobić żeby elementy sie wyśrodkowały w stosunku do appletu?

hmm, musi byc "cos", jak jakis znacznik startowy dla kazdetgo rozpoczaynajacego sie "wersu", moze takie cos co sie aktualnie dopasowuje do rozdzielczosci monitora 
(przez nas ustalonej(lub natywnejj, no ale to laptop zorbi standardowo)).
podzielic i jakies moduo to nowa linijka, jak sie "zapelni do konca poprzedniego mod. Trzeba to przechowac w jakiejs pamieci podrecznej ale autosavovalnej. Zreszta ja sie nie znam, aczkolwiek sprobuję to znaleźć
ZW/Arek

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0