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
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 =)
Olá,
primeiramente, sugiro que utilize as tags Code para facilitar a vida de quem olha o código. 
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:
segue codigo da Mainframe
[code]
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);
}
}[/code]
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…
teria como voce me dar um exeplo?
valeu!!
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…
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() {
…
}
tesao!!! funcionou certinho
valeu