Algumas duvidas no meu codigo

2 respostas
H

Estou desenvolvendo um codigo, mas está dando alguns erros que não consigo achar o erro. Vou listar as minhas perguntas e depois logo abaixo posto o codigo que escrevi.

Dentro de um GridLayout inseri tres radiobuttons e quatro menus de lista.
Os dois últimos menus de lista não estão aparecendo aquelas setinhas do lado direito que permite fazer a rolagem do menu de lista.

Uma outra dúvida que possuo se refere ao proprio gridlayout. Quando a gente cria ele definimos o numero de linhas, colunas e os espacamentos vertical e horizontal.

Só que o espaço horizontal entre os radiobuttons e os menus de lista estão muito longe um dos outros, o que permite que não seja necessário clicar em cima propriamente do objeto radiobutton, pode-se clicar em algum lugar da linha onde está o objeto na area do grid que funcionará do mesmo jeito... Gostaria que funcionasse apenas quando o usuário clicar em cima do objeto...

Para entender tudo o que disse seria necessario rodar o programa para ver como ficou, por isto aí vai o codigo dele.
Observação: é um AppletViewer que estou fazendo...

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class PalavraChave extends JApplet implements  ListSelectionListener, ActionListener, ItemListener
{



JPanel P2;
JRadioButton radio1, radio2, radio3;
JList ListaOrgaosFederal, ListaOrgaosEstadual, ListaOrgaosMunicipal, ListaNormas;

ButtonGroup radiogroup;
DefaultListModel lista1, lista2, lista3, lista4;

public void init()
{
	
    getContentPane().setLayout(new GridLayout(4,2,1,1));
	P2 = new JPanel();
	P2.setLayout(new GridLayout(4,2,1,1));
	
	P2.setBackground(new Color(200,200,200));
	
	radio1 = new JRadioButton("Legislação Federal");     radio1.addItemListener(this);
	radio2 = new JRadioButton("Legislação Estadual");    radio2.addItemListener(this);
	radio3 = new JRadioButton("Legislação Municipal");   radio3.addItemListener(this);
	
	radio1.setMnemonic(KeyEvent.VK_1);
	radio2.setMnemonic(KeyEvent.VK_2);
	radio3.setMnemonic(KeyEvent.VK_3);
	

	
	lista1 = new DefaultListModel();
	lista1.addElement("PE - Poder Executivo");
	lista1.addElement("PL - Poder Legislativo");
	lista1.addElement("SRF - Secretaria da Receita Federal");
	
	ListaOrgaosFederal = new JList(lista1);
	ListaOrgaosFederal.addListSelectionListener(this);
	JScrollPane ListaFederal = new JScrollPane(ListaOrgaosFederal);
	
	
	
	lista2 = new DefaultListModel();
	lista2.addElement("PE - Poder Executivo");
	lista2.addElement("PL - Poder Legislativo");
		
	ListaOrgaosEstadual = new JList(lista2);
	ListaOrgaosEstadual.addListSelectionListener(this);
	JScrollPane ListaEstadual = new JScrollPane(ListaOrgaosEstadual);
	
	
	
	lista3 = new DefaultListModel();
	lista3.addElement("PE - Poder Executivo");
	lista3.addElement("PL - Poder Legislativo");
	lista3.addElement("Secretaria");
		
	ListaOrgaosMunicipal = new JList(lista3);
	ListaOrgaosMunicipal.addListSelectionListener(this);
	JScrollPane ListaMunicipal = new JScrollPane(ListaOrgaosMunicipal);
	
	
	
	
	lista4 = new DefaultListModel();
	lista4.addElement("Decretos");
	lista4.addElement("Leis");
	lista4.addElement("Medidas Provisórias");
		
	ListaNormas = new JList(lista4);
	ListaNormas.addListSelectionListener(this);
	JScrollPane ListaTodasNormas = new JScrollPane(ListaNormas);
	
	radiogroup = new ButtonGroup();
	radiogroup.add(radio1);
	radiogroup.add(radio2);
	radiogroup.add(radio3);
	
	P2.add(radio1);
	P2.add(ListaFederal);
	
	P2.add(radio2);
	P2.add(ListaEstadual);
	
	
	P2.add(radio3);
	P2.add(ListaOrgaosMunicipal);
	P2.add(ListaNormas);
	
	getContentPane().add(P2);
	
	}
	
	 public void itemStateChanged(ItemEvent e) { 
   
  } 
  
  public void actionPerformed(ActionEvent e){
  }
  
  public void valueChanged(ListSelectionEvent e){
  }
}

Agora o codigo do appletviewer:

<html>
<APPLET code="PalavraChave.class" width = 600 height = 200>
</APPLET>
</html>

2 Respostas

J

OI

Halfar, em alguns momentos, se tu quiser um nivel de detalhes muito grande no interface, é melhor fazer tudo sem gerenciador de Layout e setar tudo no setBounds ou setSize e setLocation. :slight_smile:

T+

H

Obrigado pela dica… Vou usar isto tambem. mas to com a pulga atras da orelha… porque não está aparecendo as setinhas para poder fazer a rolagem nos dois ultimos objetos??

Se tiver alguem que manja bem aí, da uma olhadinha no meu codigo, roda ele e veja o que estou dizendo… ( executando o codigo é mais facil de entender o que estou dizendo)…

Obrigado.

Criado 21 de junho de 2004
Ultima resposta 21 de jun. de 2004
Respostas 2
Participantes 2