-1

マウス アダプタ クラスを使用してマウス クリック数を取得しようとすると、次のようなエラーが発生します:
Exception in thread "AWT-EventQueue-0" java.util.FormatFlagsConversionMismatchException: Conversion = c, Flags =
java.util.Formatter$FormatSpecifier.failMismatch (不明なソース) で java.util.Formatter$FormatSpecifier.checkBadFlags (不明なソース) で java.util.Formatter$FormatSpecifier.checkCharacter (不明なソース) で java.util.Formatter$FormatSpecifier .(不明なソース) java.util.Formatter.parse で(不明なソース) java.util.Formatter.format(不明なソース) で java.util.Formatter.format(不明なソース) で java.lang.String.format(不明なソース) practice2.window12$Mouseclass.mouseClicked(window12.java:20) で java.awt.Component.processMouseEvent(不明なソース) で java.awt.Component.processEvent(不明なソース) で java.awt.Container.processEvent (不明なソース) java.awt.Window.processEvent で(不明なソース) java.awt.Component.dispatchEventImpl で(不明なソース) java.awt.Container で。java.awt.Window.dispatchEventImpl(不明なソース) で java.awt.Component.dispatchEvent(不明なソース) で java.awt.EventQueue.dispatchEventImpl(不明なソース) で java.awt.EventQueue.access$200 (不明なソース) java.awt.EventQueue$3.run で (不明なソース) java.awt.EventQueue$3.run で (不明なソース) java.security.AccessController.doPrivileged(ネイティブ メソッド) で java.security.ProtectionDomain$1。 java.security.ProtectionDomain$1 の doIntersectionPrivilege (不明なソース)。java.awt.EventQueue$4.run の doIntersectionPrivilege (不明なソース) java.security.ProtectionDomain$1 の .doPrivileged(ネイティブ メソッド)。java.awt.EventQueue の doIntersectionPrivilege(不明なソース)。java.awt.EventDispatchThread.pumpOneEventForFilters (不明なソース) での dispatchEvent (不明なソース) java.awt.EventDispatchThread.pumpEventsForFilter (不明なソース) での java.awt.EventDispatchThread.pumpEventsForHierarchy (不明なソース) でソース不明) java.awt.EventDispatchThread.pumpEvents(不明ソース) java.awt.EventDispatchThread.run(不明ソース)`run(不明なソース)`run(不明なソース)`

package practice2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class window12 extends JFrame{
    private String details;
    private JLabel statusbar;

    public window12(){
        super("this will be title");
        setVisible(true);
        setSize(400,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        statusbar=new JLabel("this will be defalt");
        add(statusbar,BorderLayout.SOUTH);
        addMouseListener(new Mouseclass());
    }
    private class Mouseclass extends MouseAdapter{
        public void mouseClicked(MouseEvent event){
            details=String.format("you clicked %      `enter code here`clicks",event.getClickCount());
            if(event.isMetaDown()){
                details+=" with right button";
            }
            else if(event.isAltDown()){
                details+=" with center button";
            }
            else{
                details+=" with left button";
            }
            statusbar.setText(details);
        }
    }
    public static void main(String[] args){
        new window12();
    }

}
4

3 に答える 3

1

例外メッセージは問題の良い指標です - フォーマット指定子を使用する必要があります

details = String.format("you clicked %d", event.getClickCount());

javadocを読む

于 2013-06-20T15:24:07.007 に答える
0

フォーマット指定子がありません%d:

details = String.format("you clicked %d",event.getClickCount();
于 2013-06-20T15:26:01.487 に答える
0

これ

details=String.format("you clicked %      `enter code here`clicks",event.getClickCount());

する必要があります

details=String.format("you clicked %d      `enter code here`clicks",event.getClickCount());

%d に注意

于 2013-06-20T15:25:02.377 に答える