好吧所以我是Java的新手,我试图制作我的第一个程序而且我收到的这条消息似乎无法修复:
The method format(String, Object[]) in the type String is not applicable for the arguments (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");
}
}
}
答案 0 :(得分:3)
我遇到此错误,因为默认编译器设置为1.4。将其设置为1.7可以解决它。
在Eclipse:Properties / Java Compiler中,单击“启用项目特定设置”框,使用编译器合规性级别1.7。
答案 1 :(得分:2)
将默认编译器设置为1.6或1.7 希望这能解决你的问题
答案 2 :(得分:1)
您缺少右括号。
statusbar.setText(String.format("%d, %d", event.getX(), event.getY());
应该是:
statusbar.setText(String.format("%d, %d", event.getX(), event.getY()));
答案 3 :(得分:0)
此类型的错误消息表示您为该方法提供的参数类型与其预期的类型之间存在差异。在这种情况下,它要求String
和一个Object
(Object [])数组,但是你给它一个字符串和两个整数。您需要先将这些打包为数组。
int [] temp = {event.getX(), event.getY()};
statusbar.setText(String.format("%d, %d", temp);