Erro criação Janela

7 respostas
J

Boas pessoal, ainda sou iniciado em programação mas espero vir a aprender e partilhar o conhecimento que for relevante aqui no fórum.

Estou a criar uma nova janela básica com o JFrame em java e apesar de já ter tentado de várias formas e ter praticamente a certeza de que estou a inserir o código corretamente aparece-se sempre o seguinte erro que se encontra em anexo quando tento compilar

Se me poderem ajudar agradeço bastante


7 Respostas

H

Refiz o código, e funcionou corretamente…

Vai nas propriedades do projeto, “ALT+ENTER”. Em ‘java build path’ / librares / veja se está JavaSE-1.7 caso contrario clique em editar e escolha este.

package teste;

import javax.swing.JFrame;

@SuppressWarnings("serial")
public class Main extends JFrame {

	public Main() {
		setTitle("Teste");
		setSize(500,500);
		setLocation(200,100);
		setResizable(false);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		
		new Main();
		
	}

}
J

Vou fazer isso, depois volto para dizer se funcionou

Muito obrigado pela resposta.

J

Já estava a utilizar essa versão JavaSE-1.7 (Java SE7 (MacOS X Default)). Não consigo correr os projectos

J

Obrigado pela dica, andei aqui às voltas e consegui resolver o problema

J

Bem pessoal, neste momento estou a tentar criar uma lista de botoes entre 1 e 199. Quando cliclo num botão à escolha, gostava de o substituir por um com uma cor diferente.

Na class Frame criei os botões e uma lista para os guardar.
Na class Sentinela gostava de dizer ao programa que quando o botão escolhido pelo utilizador que vem através do event for = botao da lista cria-se um novo botão. Não estou a conseguir, se me poderem dar umas dicas agradeço, sou novato nisto.

public class Frame extends JFrame {

	private JFrame frame;
	private JButton botao;
	private List<JButton> listaBotoes;
	
	public Frame(){
		listaBotoes = new ArrayList<JButton>();
		frame = new JFrame("button adder");
		for (int i = 0; i <= 199; i++) {
			frame.add(botao = new JButton(""+i));
			listaBotoes.add(botao);
		}

		
		Sentinela sentinela = new Sentinela(frame);
		botao.addActionListener(sentinela); 
		
		
		frame.setSize(1000, 650);
		frame.setLayout(new FlowLayout()); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //fecha programa
		frame.setVisible(true);
	}

	public List<JButton> getListaBotoes() {
		return listaBotoes;
	}
	
}

public class Sentinela  implements ActionListener{

	private JFrame frame;
	private Frame frameObjct;

	public Sentinela(JFrame frame) {
		this.frame = frame;
	}
	
	@Override
           public void actionPerformed(ActionEvent event) {
		List<JButton> ListaAux = new ArrayList<JButton>();
		ListaAux = frameObjct.getListaBotoes();
		for (JButton i : ListaAux){
			if(event.getSource().equals(ListaAux.get()){
				System.out.println("Ola mundo");
			frame.add(new JButton("Mundo"));
			frame.setBackground(Color.black);
	
			frame.setVisible(true);[/color]
			}
			
		}
	}


}
J
JSOUSA:
Bem pessoal, neste momento estou a tentar criar uma lista de botoes entre 1 e 199. Quando cliclo num botão à escolha, gostava de o substituir por um com uma cor diferente.

Na class Frame criei os botões e uma lista para os guardar.
Na class Sentinela gostava de dizer ao programa que quando o botão escolhido pelo utilizador que vem através do event for = botao da lista cria-se um novo botão. Não estou a conseguir, se me poderem dar umas dicas agradeço, sou novato nisto.

public class Frame extends JFrame {

	private JFrame frame;
	private JButton botao;
	private List<JButton> listaBotoes;
	
	public Frame(){
		listaBotoes = new ArrayList<JButton>();
		frame = new JFrame("button adder");
		for (int i = 0; i <= 199; i++) {
			frame.add(botao = new JButton(""+i));
			listaBotoes.add(botao);
		}

		
		Sentinela sentinela = new Sentinela(frame);
		botao.addActionListener(sentinela); 
		
		
		frame.setSize(1000, 650);
		frame.setLayout(new FlowLayout()); 
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //fecha programa
		frame.setVisible(true);
	}

	public List<JButton> getListaBotoes() {
		return listaBotoes;
	}
	
}

public class Sentinela  implements ActionListener{

	private JFrame frame;
	private Frame frameObjct;

	public Sentinela(JFrame frame) {
		this.frame = frame;
	}
	
	@Override
           public void actionPerformed(ActionEvent event) {
		List<JButton> ListaAux = new ArrayList<JButton>();
		ListaAux = frameObjct.getListaBotoes();
		for (JButton i : ListaAux){
			if(event.getSource().equals(ListaAux.get()){ //UMA DAS MINHAS DÚVIDAS ENCONTRA-SE AQUI, NÃO SEI COMO FAÇO A COMPARAÇÃO ENTRE O BOTÃO ESCOLHIDO PELO UTILIZADOR E O DA LISTA
				System.out.println("Ola mundo");
			frame.add(new JButton("Mundo"));
			frame.setBackground(Color.black);
	
			frame.setVisible(true);[/color]
			}
			
		}
	}


}
fael.programer

vc q diz cmo quer comparar… talvez criar uma classe extendida de botão e redefinir o equals para a forma q vc queira compar ou algo assim…
talvez apenas comparar os textos q estão escritos nos botões…
e pq mudar o background do frame se o botão for igual? pq frame.setVisible(true) novamente se vc já faz isso no construtor do seu frame?

Criado 23 de setembro de 2013
Ultima resposta 26 de set. de 2013
Respostas 7
Participantes 3