繁体   English   中英

创建对象并调用方法时出错,错误:找不到符号

[英]Error creating an object and calling a method, error: cannot find symbol

我不明白自己在做什么错,我只有一个类,然后创建了一个对象,然后尝试按以下方式调用方法:

  • 117 DBgui gui = new DBguie();
  • 118 gui.mostrarMarco();
  • 错误:找不到符号c:\\ users ...第118行

我在主叫这个方法

import java.sql.*;
import java.awt.*;
import java.awt.event.*;

public class DBgui /*extends WindowAdapter implements ActionListener*/{
    Frame f_principal, f_vertabla, f_modificar, f_mostrartablas, f_creartabla, f_borrar;//contenedor
    Button b_aceptar, b_cancelar;//componentes
    Label label_nombre, label_atributo;
    TextField tf_nombre, tf_atributo;
    MenuBar mb; //barra para menus
    Menu m_mostrar, m_crear, m_vertabla, m_modificar, m_borrar;
    MenuItem mi_tablas, mi_tabla, mi_mostrardbs, mi_creardbs;

public DBgui() {
    //MARCOS
    f_principal=new Frame("Interfaz gráfica Base de datos");
    f_creartabla=new Frame("Crear Tabla");
    f_vertabla=new Frame("Ver Tabla");
    f_modificar=new Frame("Modificar Registro");
    f_borrar=new Frame("Borrar Registro");

    //BOTONES
    b_aceptar=new Button("Aceptar");
    b_cancelar=new Button("Cancelar");

    //ETIQUETAS
    label_nombre=new Label("Nombre");
    label_atributo=new Label("Atributos");

    //CAMPO DE TEXTO
    tf_nombre=new TextField();
    tf_atributo=new TextField();

    //MENU
    mb=new MenuBar();
    m_mostrar=new Menu("Mostrar");
    m_crear=new Menu("Crear");
    m_vertabla=new Menu("Ver Tabla");
    m_modificar=new Menu("Modificar");
    m_borrar=new Menu("Borrar");

    mi_tablas=new MenuItem("Mostrar Tablas");
    mi_tabla=new MenuItem("Crear Tabla");
    mi_creardbs=new MenuItem("Crear Base de datos");
    mi_mostrardbs=new MenuItem("Mostrar base de datos");
}

public void mostarMarco(){
    f_principal.setSize(800,600);

    //SE CONSTRUYE EL MENU
    f_principal.setMenuBar(mb);
    mb.add(m_mostrar);
    mb.add(m_crear);
    mb.add(m_vertabla);
    mb.add(m_modificar);
    mb.add(m_borrar);

    m_mostrar.add(mi_mostrardbs);
    m_mostrar.add(mi_tablas);
    m_crear.add(mi_creardbs);
    m_crear.add(mi_tabla);
    f_principal.setVisible(true);

    //OREJAS

}

public static Connection database(String database, String username, String password) {

Connection conn;
conn=null;
String url = "jdbc:mysql://localhost:3306/" + database;

//LOAD DRIVER
try {
    Class.forName("com.mysql.jdbc.Driver");
} 
catch (ClassNotFoundException e){
    System.err.println("Could not load database driver!");
}


//CONNECT TO DATABASE
try {
    conn = DriverManager.getConnection(url, username, password);
    return conn;
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
return null;            
}

public static void mostrarTablas(Connection db) throws Exception{
    Statement stmt=db.createStatement();
    String sqlshowtables = "SHOW TABLES";
    ResultSet sst_ResultSet = stmt.executeQuery(sqlshowtables);
    while (sst_ResultSet.next()) {
      System.out.println(sst_ResultSet.getString(1));
    }
    db.close();
}

public static void main(String[] args) throws Exception{
    Connection db;
    db=database("testdb","root","chino130284");
    mostrarTablas(db);
    DBgui gui=new DBgui();
    gui.mostrarMarco();

}

}

这真的很愚蠢,我拼错了,我很尴尬

您的通话中有一个额外的“ r”。 'mostrar'vs'mostar'。

获取一个不错的IDE,以便它将为您找到这些问题。

(编辑:这有点突然,我向您道歉。严重的是,尽管现代IDE比昨天的简单文本编辑器具有更多功能。我将您的代码粘贴到我的IDE中-谢谢您提供完整的示例-并使用了自动补全功能可以找到正确的方法名称。它快速简便,坦率地说使我的编码效率提高了三到五倍。)

   public static void main( String[] args )
           throws Exception
   {
      Connection db;
      db = database( "testdb", "root", "chino130284" );
      mostrarTablas( db );
      DBgui gui = new DBgui();
      gui.mostrarMarco();  // <-- extra 'r'
      gui.mostarMarco();

   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM