Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo_laguna

Erro ao criar janela com texto

Recommended Posts

Olá, gostaria de executar um código de exemplo para criar uma tela de apresentação com algum texto, só para exemplo mas elenão executa devido ao seguinte erro:

 

java.lang.Error: Do not use GuiJLabel.setLayout() use GuiJLabel.getContentPane().setLayout() instead

at javax.swing.JFrame.createRootPaneException(Unknown Source)

at javax.swing.JFrame.setLayout(Unknown Source)

at GuiJLabel.<init>(GuiJLabel.java:19)

at TesteJLabel.main(TesteJLabel.java:5)

Exception in thread "main"

 

Abaixo os meus códigos, alguém pode me ajudar no que está de errado?

 

/*Classe GuiJLabel.java
classe gerenciadora de layout que especifica como os componentes são organizados*/

import java.awt.FlowLayout;
import javax.swing.JFrame; //classe que fornece os recursos básicos de uma janela
import javax.swing.JLabel; //classe do componente de rótulo (label). Pode exibir texto e imagem
import javax.swing.SwingConstants; //classe de constantes usadas pelos componentes Swing
import javax.swing.Icon; //interface utilizada para manipular imagens
import javax.swing.ImageIcon; //classe utilizada para carregar imagens

public class GuiJLabel extends JFrame{
	
	private JLabel label1;
	private JLabel label2;
	private JLabel label3;
	
	public GuiJLabel(){
		super("Exemplo JLabel");
		setLayout(new FlowLayout());
		
		label1 = new JLabel("Tecnólogo em Web Design e Programação");
		label1.setToolTipText("Esse é o rótulo 1");
		add(label1);
		Icon bug = new ImageIcon("metal-error.gif");
		
		label2 = new JLabel("Rótulo com texto e imagem",bug,SwingConstants.LEFT);
		label2.setToolTipText("Este é o rótulo 2");
		add(label2);
		
		label3 = new JLabel();
		label3.setText("Rótulo  com imagem e texto embaixo");
		label3.setIcon(bug);
		label3.setHorizontalTextPosition(SwingConstants.CENTER);
		label3.setVerticalTextPosition(SwingConstants.BOTTOM);
		label3.setToolTipText("Este é o rótulo 3");
		add(label3);
		
	}
}


import javax.swing.JFrame;
	public class TesteJLabel{
public static void main(String arg[]){

	GuiJLabel guijlabel = new GuiJLabel();
	guijlabel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	guijlabel.setSize(275,280);
	guijlabel.setVisible(true);
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não deve inserir o label diretamente no frame nem alterar o layout dele diretamente. Antes você deve adicionálo a um container ou manipular o layout do container.

JFrame frame = new JFreame();
frame.getContentPane(); // Aqui você insere os objetos e manipula o layout

O ideal seria você criar um JPanel e inserir seus objetos dentro dele.

JPanel panel = new JPanel();
panel.add(label1);
panel.add(label2);
frame.setContentPane(panel);

Lembrando que o layout padrão de JFrame é o BorderLayout e o padrão de JPanel é o FlowLayout.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.