String类型中的方法格式(String,Object )不适用于参数(String,int,int)
好吧所以我是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"); } } }
此类错误消息表示您为方法提供的参数类型与其预期类型之间的差异。 在这种情况下,它要求一个String
和一个Object
(Object [])数组,但你给它一个字符串和两个整数。 您需要先将这些包装为数组。
int [] temp = {event.getX(), event.getY()}; statusbar.setText(String.format("%d, %d", temp);
你错过了一个右括号。
statusbar.setText(String.format("%d, %d", event.getX(), event.getY());
应该:
statusbar.setText(String.format("%d, %d", event.getX(), event.getY()));
我遇到此错误是因为默认编译器设置为1.4。 将其设置为1.7解决了它。
在Eclipse:Properties / Java Compiler中,单击“启用项目特定设置”框,使用编译器合规性级别1.7。
将默认编译器设置为1.6或1.7希望这将解决您的问题