Java 无法从主类调用方法?
我正在尝试制作一个网络浏览器,下面是我的代码 代码: 下面是我的错误消息:Java 无法从主类调用方法?,java,variables,Java,Variables,我正在尝试制作一个网络浏览器,下面是我的代码 代码: 下面是我的错误消息: browserPannel.java:38: error: non-static method loadHtml(JEditorPane,JTextField, String) cannot be referenced from a static context loadHtml(htmlc, url, event.getActionComm
browserPannel.java:38: error: non-static method loadHtml(JEditorPane,JTextField,
String) cannot be referenced from a static context
loadHtml(htmlc, url, event.getActionComm
and());
^
1 error
正如您所知,它从loadHtml中获取错误,loadHtml是在我的代码按钮处的方法中定义的,现在如果我删除loadHtml,它将显示println(“执行的操作”);,但是,只有当我引用loadHtml时,它才表示非静态方法不能在静态方法中执行。正确。您需要类的一个实例
browserPannel
来调用该方法
browserPannel bp = new browserPannel();
bp.loadHtml(htmlc, url, event.getActionCommand());
或者你可以
private void loadHtml(JEditorPane htmlc, JTextField url, String link)
静态
,如
private static void loadHtml(JEditorPane htmlc, JTextField url, String link)
编辑
另外,Java camel case约定将您的类命名为BrowserPanel
(我建议您遵循该约定)。正如您从main方法调用“loadHtml”一样,您必须执行以下任一操作:-
1) 使用browserPannel
类的对象调用loadHtml或
2) 您需要loadHtml方法是静态的
记住规则static,同一个类中可以直接从main方法调用
干杯 您是否费心搜索关于从静态上下文引用非静态方法的其他问题?这个问题已经被问了很多次了!
private static void loadHtml(JEditorPane htmlc, JTextField url, String link)