2015-11-19 54 views
0

我不明白我在做什麼錯,我只有一個類,然後我創建了一個對象,我試圖按如下所示調用方法:創建對象和調用方法時出錯,錯誤:找不到符號

  • 117 DBgui gui = new DBguie();
  • 118 gui.mostrarMarco();
  • 錯誤:無法找到符號C:\用戶... ...線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(); 

} 

} 

這種方法是有個東西真的很愚蠢,我是拼寫錯誤,我真的很尷尬

+0

http://stackoverflow.com/questions/25706216/what-do-a-can-find-symbol-compilation-error-mean –

回答

0

你的電話裏還有一個'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(); 

    } 
+0

感謝很多的空間,這很尷尬。 –

+0

在這裏採取適當的行動將投票結束爲排字錯誤,可選地將錯字指示爲評論。 –

+0

@SotiriosDelimanolis雖然你有一個觀點,但我認爲值得指出的是,一個好的現代IDE會快速而輕鬆地發現這些錯誤。這就是我發現錯誤的原因,它和粘貼代碼一樣快,並要求IDE自動完成。有些開發人員實際上並不知道這些選項存在。 – markspace