Acho que você está querendo posicionar a tabela , não?
você está inserindo a lista dentro do scroll, entao faça:
scroll.setLocation(intx,inty);
FernandoFranzini
Use o posicionamento absoluto(não portável) como o amigo lucas indicou…ou use outro layout(posicionamento relativo portável) para posicionar no lugar que vc quiser.
lucasportela
Outra dúvida de posicionamento muito pertinente é para posicionar o JFrame no centro:
no seu caso seria
this.setLocationRelativeTo(null);
F
Fabio010
Eu coloquei o código do Lucas e não funcionou.
public Tabela()
{
this.setLayout(new FlowLayout());
this.setSize(600,350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b2 = new JList(ola);
b2.setVisibleRowCount(4);
b2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scroll = new JScrollPane(b2);
//Lucas post
scroll.setLocation(34,121);
this.add(scroll);
}
Fernando, que layout devo usar para o posicionamento relativo portátil??
lucasportela
Outra dúvida de posicionamento muito pertinente é para posicionar o JFrame no centro:
no seu caso seria
this.setLocationRelativeTo(null);
FernandoFranzini
qualquer um de preferencia !!
Só não pode usar setBound ou setLocation…
F
Fabio010
Pois eu já percebi, mas se usar um Layout de preferência eu não consigo posicionar onde eu quero ou seja na exacta posição que eu desejo.
tipo se usar o FlowLayout ele aparece no meio, se usar o BorderLayout ele aparece na borda…
Mas quando uso o posicionamento absoluto, só consido posicionar a JList sem o scroll. Porque se adicionar o scroll ele não posiciona
FernandoFranzini
Fabio010:
Pois eu já percebi, mas se usar um Layout de preferência eu não consigo posicionar onde eu quero ou seja na exacta posição que eu desejo.
tipo se usar o FlowLayout ele aparece no meio, se usar o BorderLayout ele aparece na borda…
Mas quando uso o posicionamento absoluto, só consido posicionar a JList sem o scroll. Porque se adicionar o scroll ele não posiciona :/
É pq vc precisa estudar mais os tipos de layout existente no swing e seus funcionamentos…
F
Fabio010
Ok então tenho de ver melhor isso.
Obrigado pela ajuda.
lucasportela
É o seu layout
tem de setar o alinhamento do layout na hora de instanciá-lo
this.setLayout(newFlowLayout(FlowLayout.LEFT));
F
Fabio010
lucasportela:
É o seu layout
this.setLayout(new FlowLayout(FlowLayout.LEFT));
Com esse layout consigo posicionar o scroll no lado esquerdo.
Mas o problema é que eu quero posicionar o scroll onde quero. Tal como o Fernando disse (posicionamento absoluto).
Já testei com scroll.setBounds e scroll.setLocation e ambos não funcionaram.
FernandoFranzini
Fabio010:
lucasportela:
É o seu layout
this.setLayout(new FlowLayout(FlowLayout.LEFT));
Com esse layout consigo posicionar o scroll no lado esquerdo.
Mas o problema é que eu quero posicionar o scroll onde quero. Tal como o Fernando disse (posicionamento absoluto).
Já testei com scroll.setBounds e scroll.setLocation e ambos não funcionaram.
Da sim…se 1 layout não for suficiente para sua disposição, vc pode combinar outros layouts dentro de layouts…
Mas tem que dar aquela estudada!
Bom final de semana :-o
FlowLayout layout = new FlowLayout();
layout.setHgap(250);
layout.setVgap(250);
this.setLayout(layout);
Só consegui mover para baixo com o setVgap o outro não funciona
lucasportela
Complementando o que o amigo FernandoFranzini disse… Bons estudos.
F
Fabio010
Já consegui resolver o problema.
Já consigo posicionar o scroll na posição que desejo :)
aqui está o código:
public Tabela()
{
this.setLayout(null); //layout tem de ser nulo para podermos usar o setLocation
this.setSize(600,350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
list = new JList(ola);
list.setVisibleRowCount(4);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scroll = new JScrollPane(list);
scroll.setLocation(223,22);
scroll.setSize(200,100); // penso que o probelma estava aqui
scroll.setVisible(true);
this.add(scroll);
}
não sei porquê mas acho que estava a fazer confusão com qualquer coisa.
Ou foi mesmo o setSize, porque se não definir-mos o Size ele não irá aparecer na JFrame.
Obrigado por me ajudarem.