setVisible(true); // ERRO

9 respostas
S

ESTOU INICIANDO EM JAVA E TENHO UMA DUVIDA
TENHO O SEGUINTE CODIGO QUE NA ULTIMA LINHA TEM UM ERRO

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;
public class Erro1 extends JFrame {

public static void main(String[] args) {

new Erro1();

}
public Erro1() {
//		super(“titulo”);

this.setSize(330, 160);

this.setLayout(null);
JButton bt_entrar = new JButton("Entrar");

	bt_entrar.addActionListener(new entrar());
	
	
	bt_entrar.setBounds(225, 60, 80, 20);
	this.add(bt_entrar);

}
public class entrar implements ActionListener{
	public void actionPerformed(ActionEvent e){
		Mainframe main = new Mainframe();
		main.setVisible(true); // ERRO -> The method setVisible(boolean) is undefined for the type Mainframe
	}
}

}

eu nao entendi porque esta dando esse erro.
se alguem me puder ajudar, ficarei grato

Valeu

9 Respostas

alucardeck

ueh… e a classe Mainframe tem o metodo setVisible ?

ali esta dizendo que não…
poste o codigo da Mainframe…

e coloque o codigo na TAG [ code ]… ou a galera vai apedrejar vc tb =)

TangZero

Olá,

primeiramente, sugiro que utilize as tags Code para facilitar a vida de quem olha o código. :wink:

Sobre o seu problema, que classe é essa chamada MainFrame?

Mainframe main = new Mainframe();
main.setVisible(true);

Pelo que eu vi, a sua classe se chama Erro1…

public class Erro1 extends JFrame {

Você pode confirmar isso, porque existe uma certa confusão aqui… :roll:

S

segue codigo da Mainframe

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import com.programa.sub.*;

public class Mainframe {

	public static void main(String[] args) {
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				createAndShowGUI();
			}
		});
	}

	public JMenuBar createMenuBar() {
		JMenuBar menuBar;
		JMenu menu, submenu;
		JMenuItem menuItem;
		menuBar = new JMenuBar();

		// ARQUIVO
		menu = new JMenu("Arquivo");
		menuBar.add(menu);

		menuItem = new JMenuItem("Sair", KeyEvent.VK_L);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4,
				ActionEvent.CTRL_MASK));
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
			}
		});
		menu.add(menuItem);

		// SISTEMA
		menu = new JMenu("Sistemas");
		menuBar.add(menu);

		// Cadastros Básicos
		submenu = new JMenu("Agenda");
		submenu.setIcon(new ImageIcon("icon/agenda.jpg"));
		submenu.setMnemonic(KeyEvent.VK_B);

		// Cadastro de clientes
		menuItem = new JMenuItem("Cadastro de clientes", KeyEvent.VK_C);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
				ActionEvent.CTRL_MASK));
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Cad_cliente cad_clientes = new Cad_cliente();
				cad_clientes.setVisible(true);
			}
		});
		submenu.add(menuItem);
		menu.add(submenu);

		// Localizar cadastros
		menuItem = new JMenuItem("Localizar cadastros", KeyEvent.VK_L);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,
				ActionEvent.CTRL_MASK));
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Loc_cadastro Loc_cadastro = new Loc_cadastro();
				Loc_cadastro.setVisible(true);
			}
		});

		submenu.add(menuItem);
		menu.add(submenu);

		menu.addSeparator();

		menuItem = new JMenuItem("Calculadora", KeyEvent.VK_C);
		menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
				ActionEvent.CTRL_MASK));
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				new Calculadora();
			}
		});
		menu.add(menuItem);
		return menuBar;
	}

	private static void createAndShowGUI() {
		JFrame frame = new JFrame("Nortele");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		Mainframe demo = new Mainframe();
		frame.setJMenuBar(demo.createMenuBar());

		// deixa programa maximizado
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setVisible(true);
	}
}
alucardeck

entao… o erro é simples…

a classe Mainframe não tem o metodo setVisible(boolean)

ou vc dah um extends nela com relação ao objeto principal…

ou vc dah um get no componente q vc quer que seja setado para visible…

S

teria como voce me dar um exeplo?

valeu!!

alucardeck

acho q no seu caso vc pode mudar a classe “entrar”

tente isso:

public class entrar implements ActionListener{ public void actionPerformed(ActionEvent e){ Mainframe.createAndShowGUI(); } }

apesar de eu achar errado fazer isso… =)

mas deve funcionar do jeito q vc ker…

S

nao deu certo…

alucardeck

vc esta programando onde? na mão?

puis no eclipse e vi o pq…

vc precisa adicionar a linha
setVisible(true);
no construtor da classe Erro1

e mude para PUBLIC

o -->   PRIVATE static void createAndShowGUI() {



}
S

tesao!!! funcionou certinho

valeu

Criado 31 de julho de 2008
Ultima resposta 31 de jul. de 2008
Respostas 9
Participantes 3