Java 类型字符串中的方法格式(字符串,对象[])不适用于参数(字符串,int,int)
好的,我是Java新手,我正在尝试制作我的第一个程序,我得到了一个信息,我似乎无法修复:Java 类型字符串中的方法格式(字符串,对象[])不适用于参数(字符串,int,int),java,string,Java,String,好的,我是Java新手,我正在尝试制作我的第一个程序,我得到了一个信息,我似乎无法修复: 类型String中的方法格式(String,Object[])不适用于参数(String,int,int)。 代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Gui extends JFrame{ private JPanel GamePanel; private J
类型String中的方法格式(String,Object[])不适用于参数(String,int,int)。
代码如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Gui extends JFrame{
private JPanel GamePanel;
private JLabel statusbar;
public Gui(){
super("Title");
GamePanel = new JPanel();
GamePanel.setBackground(Color.WHITE);
add(GamePanel, BorderLayout.CENTER);
statusbar = new JLabel("default");
add(statusbar, BorderLayout.SOUTH);
HandlerClass handler = new HandlerClass();
GamePanel.addMouseListener(handler);
}
class HandlerClass implements MouseListener{
public void mouseEntered(MouseEvent event){
//here is where the problem is!
statusbar.setText(String.format("%d, %d", event.getX(), event.getY());
}
public void mouseClicked(MouseEvent event) {
statusbar.setText("ok?");
}
public void mouseExited(MouseEvent event) {
statusbar.setText("something");
}
public void mousePressed(MouseEvent event) {
statusbar.setText("something");
}
public void mouseReleased(MouseEvent event) {
statusbar.setText("something");
}
}
}
您缺少一个右括号
statusbar.setText(String.format("%d, %d", event.getX(), event.getY());
应该是:
statusbar.setText(String.format("%d, %d", event.getX(), event.getY()));
您缺少一个右括号
statusbar.setText(String.format("%d, %d", event.getX(), event.getY());
应该是:
statusbar.setText(String.format("%d, %d", event.getX(), event.getY()));
此类型的错误消息表示您为方法提供的参数类型与其期望的类型之间存在差异。在本例中,它要求一个
字符串
和一个对象
(Object[])数组,但您给它一个字符串和两个整数。您需要首先将它们打包为一个数组
int [] temp = {event.getX(), event.getY()};
statusbar.setText(String.format("%d, %d", temp);
此类型的错误消息表示您为方法提供的参数类型与其期望的类型之间存在差异。在本例中,它要求一个
字符串
和一个对象
(Object[])数组,但您给它一个字符串和两个整数。您需要首先将它们打包为一个数组
int [] temp = {event.getX(), event.getY()};
statusbar.setText(String.format("%d, %d", temp);
我遇到这个错误是因为默认编译器设置为1.4。将其设置为1.7解决了此问题
在Eclipse:Properties/Java编译器中,单击框以启用特定于项目的设置,使用编译器符合性级别1.7。我遇到此错误,因为默认编译器设置为1.4。将其设置为1.7解决了此问题
在Eclipse:Properties/Java编译器中,单击框以启用特定于项目的设置,使用编译器符合性级别1.7。将默认编译器设置为1.6或1.7
希望这能解决您的问题将默认编译器设置为1.6或1.7
希望这能解决您的问题谢谢,但它不起作用:(@user3421750“不起作用”是什么意思?有新问题吗?是的,有一个问题它给了我相同的错误,即:类型字符串中的方法格式(字符串,对象[])不适用于参数(字符串,int,int)。我刚检查过,代码对我来说编译得非常好。请尝试在IDE中重建项目。谢谢,但它不起作用:(@user3421750“不起作用”是什么意思?是否有新问题?是的,有一个问题它给了我相同的错误,即:类型字符串中的方法格式(字符串,对象[])不适用于参数(String,int,int)。我刚刚检查过,代码对我来说编译得非常好。尝试在IDE中重建项目。这与@drb在你之前两年的答案相同。这与@drb在你之前两年的答案相同。我不太确定这是否可行(可能是
Integer[]
,如果是int
,则使用新整数
。此错误应仅在类似Java 1.4(自2004年以来已过时)中出现,因为Java 5引入了自动装箱和对象…
参数以格式化
,在这一点上,这个错误应该不会再发生了。尽管如此,如果int[]
在这里没有问题,我会感到惊讶,因为它需要一个对象[]
(即非原语数组)。(我从未使用过Java1.4。)大多数情况下,我建议使用较新版本的Java。编译器版本比语法有更多的工作要做…从1.4更改为1.7解决了我的问题…方法的格式在多种语言中是相同的,数组参数在签名中的最后一个参数时不需要参数值。我不是特别确定这将起作用(可能是一个Integer[]
,如果是int
,则使用newinteger
)。此错误应该只在Java 1.4中出现(自2004年以来已过时),因为Java 5引入了自动装箱和对象…
参数以格式化
,在这一点上,这个错误应该不会再发生了。尽管如此,如果int[]
在这里没有问题,我会感到惊讶,因为它需要一个对象[]
(即非原语数组)。(我从未使用过Java1.4。)大多数情况下,我建议使用较新版本的Java。编译器版本比语法有更多的工作要做…从1.4更改为1.7修复了我的问题…方法的格式在多种语言中是相同的,数组参数作为签名中的最后一个参数时不需要参数值。