Importar elementos do código para o Jframe

3 respostas
J

Olá amigos, estou desenvolvendo um projeto em Java que utiliza o Jframe porém o problema é que ao fazer algumas alterações no código todos os elementos sumiram, por sorte tenho um backup, porém acho que seria interessante saber como fazer essa importação. Lembro que uma vez eu precisei criar uma nova classe com os mesmos códigos de outra e nesse caso todos os componentes foram importados automaticamente ao clicar na aba design ( uso Eclipse ) vou deixar o código abaixo:

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Point;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.BorderLayout;






public class Tela extends JFrame {
	public Tela() {
		getContentPane().setLayout(null);
	}


	private JPanel contentPane;
	private JLabel lblTorre1_maior;
	private JLabel lblTorre1_medio;
	private JLabel lblTorre1_menor;
	private Torre torre[] = new Torre[3];
	private JButton btnTrocar;
	private JComboBox origem;
    private JComboBox destino;
    private JLabel cronometro;
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Tela frame = new Tela();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 * 
	 */
    
     
   private JLabel torre1;
   
    
	   
	   
	   
	
	private void inicializa(){
		torre[0] = new Torre(new int[]{0,1,2});
		torre[1] = new Torre();
		torre[2] = new Torre();
	}
	
	public void Tela11() {
		setTitle("Torre Han\u00F3i");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 250, 615, 296);
		contentPane = new JPanel();
		contentPane.setBackground(SystemColor.text);
		contentPane.setForeground(SystemColor.desktop);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		contentPane.add(getLblTorre1_maior());
		contentPane.add(getLblTorre1_medio());
		contentPane.add(getLblTorre1_menor());
		contentPane.add(getBtnTrocar());
		
		origem = new JComboBox();
		origem.setModel(new DefaultComboBoxModel(new String[] {"Torre 1\t", "Torre 2", "Torre 3"}));
		origem.setBounds(32, 230, 104, 20);
		contentPane.add(origem);
		
		destino = new JComboBox();
		destino.setModel(new DefaultComboBoxModel(new String[] {"Torre 1\t", "Torre 2", "Torre 3"}));
		destino.setBounds(476, 230, 98, 20);
		contentPane.add(destino);
		
		JLabel lblOrigem = new JLabel("Origem");
		lblOrigem.setBounds(35, 205, 46, 14);
		contentPane.add(lblOrigem);
		
		JLabel lblNewLabel = new JLabel("Destino");
		lblNewLabel.setBounds(476, 205, 46, 14);
		contentPane.add(lblNewLabel);
		
		JButton btnNewButton = new JButton("Iniciar");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				
			}
		});
		btnNewButton.setBounds(238, 11, 89, 23);
		contentPane.add(btnNewButton);
		contentPane.add(getCronometro());
		contentPane.add(getTorre1());
		inicializa();
		configuraLabels();
	}
	
	private void configuraLabels(){
		for(int a = 0; a < 3; a++){
			for(int b = 0; b < 3; b++){
				posicionaLabel(a, b, torre[a].getValores()[b]);
			}
		}
	}
	
	private void posicionaLabel(int torre, int posicao, int valor){
		if (valor != -1){
			JLabel label = new JLabel();
			int ajuste=0;
			switch(valor){
				case 0:
					label = lblTorre1_maior;
					ajuste = 0;
					break;
				case 1:
					label = lblTorre1_medio;
					ajuste = 25;
					break;
				case 2:
					label = lblTorre1_menor;
					ajuste = 50;
					break;
			}
			int x = 10 + (torre * 200) + ajuste;
			int y = 140 - (posicao * 25);
			label.setLocation(x,y);
		}
	}
	private JLabel getLblTorre1_maior() {
		if (lblTorre1_maior == null) {
			ImageIcon icone = new ImageIcon("maior.jpg");
			lblTorre1_maior = new JLabel(icone);
			lblTorre1_maior.setBounds(10, 140, 114, 23);
		}
		return lblTorre1_maior;
	}
	private JLabel getLblTorre1_medio() {
		if (lblTorre1_medio == null) {
			ImageIcon icone = new ImageIcon("meio.jpg");
			lblTorre1_medio = new JLabel(icone);
			lblTorre1_medio.setBounds(32, 106, 64, 23);
		}
		return lblTorre1_medio;
	}
	private JLabel getLblTorre1_menor() {
		if (lblTorre1_menor == null) {
			ImageIcon icone = new ImageIcon("menor.jpg");
			lblTorre1_menor = new JLabel(icone);
			lblTorre1_menor.setBounds(60, 90, 14, 23);
		}
		return lblTorre1_menor;
	}
	
	
	
		
		
	
	private JButton getBtnTrocar() {
		if (btnTrocar == null) {
			btnTrocar = new JButton("Trocar");
			btnTrocar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					
					
					
					if(torre[origem.getSelectedIndex()].top() > torre[destino.getSelectedIndex()].top()){
						torre[destino.getSelectedIndex()].push(torre[origem.getSelectedIndex()].pop());
						configuraLabels();
					}else if(torre[origem.getSelectedIndex()].top() < torre[destino.getSelectedIndex()].top()){
						JOptionPane.showMessageDialog(null, "Movimento Inválido!");
					}
					
					else if (lblTorre1_menor.getLocation()== new Point (260,90)){
						
					  if	(lblTorre1_medio.getLocation()==new Point (260,115)){	  
						 if (lblTorre1_maior.getLocation()==new Point (260,140)){
							 JOptionPane.showMessageDialog(null,"Parabens você venceu");
					  
							  
						   }
					  }
	
							  
						   
						}
						
				}
				
			}
			);
			btnTrocar.setBounds(255, 230, 80, 21);
		}
		return btnTrocar;
	}
	private JLabel getCronometro() {
		if (cronometro == null) {
			cronometro = new JLabel("New label");
			cronometro.setBounds(364, 15, 141, 14);
		}
		return cronometro;
	}
	private JLabel getTorre1() {
		if (torre1 == null) {
			ImageIcon icone = new ImageIcon("Base 100x100.jpg");
			torre1 = new JLabel(icone);
			torre1.setSize(114, 91);
			torre1.setLocation(193, 72);
			torre1.setBackground(SystemColor.desktop);
					
		}
		
			
		
		return torre1;
	}
}

3 Respostas

AndreLuisOnLine

Olá. Você esta usando o plugin de design gráfico windowsbiulder pro? Caso seja esse, se você deixar o cógido com algum tipo de erro e tentar rotornar para a aba design os elementos somem. Entao você volta na aba código, corrige o erro (ou coloca o trecho com erro como comentário) e rotorna para a aba design que os elementos vão estar todos lá.

J

Isso cara estou usando Windows Builder, eu imaginei isso porém o código não está acusando erros, porém isso eu acho que se deve ao fato de eu ter mudado o nome da minha classe ;S ( e consequentemente das partes do código que faziam referência a ela) ! Mas beleza cara eu vou tentar fazer isso no código que, já que mesmo já tendo backup é bom aprender como faz !

T

Será que é por causa desse pedaço de código:

public Tela() { getContentPane().setLayout(null); }

Tenta assim:

public Tela() { getContentPane().setLayout(null); getTela11(); }

Criado 17 de outubro de 2012
Ultima resposta 17 de out. de 2012
Respostas 3
Participantes 3