Organizando Componentes

5 respostas
M

Pessoal não to conseguindo organizar os componentes usando os Layouts do java, venho do Delphi onde é so clicar e arrastar e não queria usar setBounds no Java também alguem por favor me ajuda a organizar os componentes.

package br.com.l2jremoteadmin;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

public class L2JRemoteAdmin extends JFrame implements ActionListener
{
	/**
	 * @author André Moabson
	 */
	private static final long serialVersionUID = 1L;
	
      EmptyBorder border5 = new EmptyBorder(5,5,5,5);
	  ButtonGroup gruporeload = new ButtonGroup();
	
      //Panel
	  JPanel panel = new JPanel();
	  JPanel reloadpanel = new JPanel();
	  JPanel serverpanel = new JPanel();
	  JPanel playerpanel = new JPanel();
	  
  
	  //Button
	  JButton btnConectar = new JButton ("Conectar");
	  JButton btnDesconectar = new JButton ("Desconectar");
	  JButton btnSair = new JButton ("Sair");
	  JButton btnShutdown = new JButton ("Shutdown");
	  JButton btnRestart = new JButton ("Restart");
	  JButton btnAnnounce = new JButton ("Announce");
	  JButton btnGmChat = new JButton ("Gm Chat");
	  JButton btnMsg = new JButton ("Msg");
	  JButton btnKick = new JButton ("Kick");
	  JButton btnJail = new JButton ("Jail");
	  JButton btnUnjail = new JButton ("UnJail");
	  JButton btnReload = new JButton ("Reload");
	 
	  //RadioButton
	  JRadioButton html = new JRadioButton ("HTML");
	  JRadioButton multisell = new JRadioButton ("Multisell");
	  JRadioButton skill = new JRadioButton ("Skill");
	  JRadioButton npc = new JRadioButton ("Npc");
	  JRadioButton teleport = new JRadioButton ("Teleport");	
	  
	  //Label
	  JLabel labelStatus = new JLabel ("Desconectado!");
	  JLabel labelComandos = new JLabel ("Comandos:");
	  JLabel labelIP = new JLabel ("IP:");
	  JLabel labelSenha = new JLabel ("Senha:");
	  JLabel labelPorta = new JLabel ("Porta:");
	  JLabel labelTelnetStatus = new JLabel ("Telnet Status:");
	  
	  //Text Field
	  JTextField ip = new JTextField ("127.0.0.1");
	  JTextField porta = new JTextField ("666");
	  JTextField tempo = new JTextField ("Tempo em Segundos");
	  JTextField msg = new JTextField ("Mensagem");
	  JTextField playername = new JTextField ("Nome do Player");
	  JPasswordField senha = new JPasswordField();  
	  
	  
  public L2JRemoteAdmin()
    {
	  super ("L2J Remote Admin");
	}
  
    
  public void criaJanela()
    {
  
	  btnConectar.addActionListener(this);
	  btnDesconectar.addActionListener(this);
	  btnSair.addActionListener(this);
	  btnShutdown.addActionListener(this);
	  btnRestart.addActionListener(this);
	  btnAnnounce.addActionListener(this);
	  btnGmChat.addActionListener(this);
	  btnMsg.addActionListener(this);
	  btnKick.addActionListener(this);
	  btnJail.addActionListener(this);
	  btnUnjail.addActionListener(this);
	  btnReload.addActionListener(this);
	  
	  reloadpanel.setBorder(new CompoundBorder(new TitledBorder(null, "Reload",
				  TitledBorder.LEFT, TitledBorder.TOP), border5));
	  reloadpanel.add(html);
	  reloadpanel.add(multisell);
	  reloadpanel.add(skill);
	  reloadpanel.add(npc);
	  reloadpanel.add(teleport);

	  gruporeload.add(html);
	  gruporeload.add(multisell);
	  gruporeload.add(skill);
	  gruporeload.add(npc);
	  gruporeload.add(teleport);

	  reloadpanel.add(btnReload);
  
	  serverpanel.setBorder(new CompoundBorder(new TitledBorder(null, "Server",
			  TitledBorder.LEFT, TitledBorder.TOP), border5));
	  serverpanel.add(btnAnnounce);
	  serverpanel.add(btnGmChat);
	  serverpanel.add(btnRestart);
	  serverpanel.add(btnShutdown);
	  
	  playerpanel.setBorder(new CompoundBorder(new TitledBorder(null, "Player",
			  TitledBorder.LEFT, TitledBorder.TOP), border5));
	  playerpanel.add(btnJail);
	  playerpanel.add(btnUnjail);
	  playerpanel.add(btnKick);
	  playerpanel.add(btnMsg);
	  
	   
	  panel.add(labelIP);
	  panel.add(ip);	
	  panel.add(labelPorta);
	  panel.add(porta);
	  panel.add(labelSenha);
	  panel.add(senha);
	  panel.add(labelTelnetStatus);
	  panel.add(labelStatus);
	  panel.add(btnConectar);
	  panel.add(btnSair);
	  panel.add(btnDesconectar);
	  panel.add(playername);
	  panel.add(msg);
	  panel.add(tempo);
	  panel.add(playerpanel);
	  panel.add(serverpanel);
      panel.add(reloadpanel);

   	  getContentPane().add(panel);
	  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
  public void actionPerformed(ActionEvent event)
    {
	  if (event.getSource() == btnSair)
	    {
		  System.exit(0);
		}
	
	}
	
  public static void main (String args[])
    {
	  L2JRemoteAdmin l2jremoteadmin = new L2JRemoteAdmin();
	  l2jremoteadmin.criaJanela();
	  l2jremoteadmin.setSize(800,600);
	  //l2jremoteadmin.pack();
	  //l2jremoteadmin.setResizable(false);
	  l2jremoteadmin.setLocationRelativeTo(null);
	  l2jremoteadmin.setVisible(true);	  
    } 
}

5 Respostas

Mephy

se for o caso de não precisar escrever o código manualmente, existem plug-ins para as IDEs (Matisse do NetBeans, algumas outras pra Eclipse) que fazem praticamente o mesmo serviço do Delphi/Visual Studio na parte do layout, e usando os Layout Managers

M

Não amigo eu não quero usar plug-ins, por enquanto ate eu aprender realmente, eu quero fazer tudo na mão.

Mephy

Como se tivesse feito na mão em Delphi…
bem, querendo assim, tente procurar no Google sobre os Layout Managers (gerenciadores automáticos de layout) do Java, como o GridLayout, GridBagLayout, GroupLayout, etc.
eles fazem a inserção dos componentes do modo que foram previamente dispostos a fazer, e fazem com que o layout fique igual em todo o monitor, independente da resolução (de um mobile até um monitor full-HD de 2k+ pixels), com certas padronizações

M

Mais alguem pode me ajudar?

M

Up !

Criado 10 de abril de 2011
Ultima resposta 14 de abr. de 2011
Respostas 5
Participantes 2