Error creating an object and calling a method, error: cannot find symbol
Error creating an object and calling a method, error: cannot find symbol
我不明白我做错了什么,我只有一个 class 然后我创建了一个对象并尝试调用如下方法:
- 117 DBgui gui=新 DBguie();
- 118 gui.mostrarMarco();
- 错误:找不到符号 c:\users...第 118 行
我在main中调用这个方法
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' 对比 'mostar'.
找个像样的IDE,它会帮你找出这些问题的。
(编辑:这有点突然,我道歉。说真的,虽然现代 IDE 比昨天的简单文本编辑器有更多的功能。我将你的代码粘贴到我的 IDE -- 感谢您提供 complete 示例 -- 并使用自动完成功能找到正确的方法名称。它既快速又简单,坦率地说,它使我的编码效率提高了三到五倍.)
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();
}
我不明白我做错了什么,我只有一个 class 然后我创建了一个对象并尝试调用如下方法:
- 117 DBgui gui=新 DBguie();
- 118 gui.mostrarMarco();
- 错误:找不到符号 c:\users...第 118 行
我在main中调用这个方法
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' 对比 'mostar'.
找个像样的IDE,它会帮你找出这些问题的。
(编辑:这有点突然,我道歉。说真的,虽然现代 IDE 比昨天的简单文本编辑器有更多的功能。我将你的代码粘贴到我的 IDE -- 感谢您提供 complete 示例 -- 并使用自动完成功能找到正确的方法名称。它既快速又简单,坦率地说,它使我的编码效率提高了三到五倍.)
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();
}