我試圖創建一些按鈕,這將啓用禁用其他按鈕的面板 它的編碼完美,但運行時顯示錯誤代碼有什麼問題。 我無法調試。使用擺動時出錯
Exception in thread "main" java.lang.NoClassDefFoundError: buttondemo (wrong nam
e: components/buttondemo)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:472)
下面的代碼
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class buttondemo extends JPanel implements ActionListener {
private JButton b1, b2, b3;
public buttondemo() {
ImageIcon Left = createImageIcon("C:\\Users\\nco\\Desktop\\Swing\\components\\images\\left.png");
ImageIcon Right = createImageIcon("C:\\Users\\nco\\Desktop\\Swing\\components\\images\\right.jpg");
ImageIcon Middle = createImageIcon("C:\\Users\\nco\\Desktop\\Swing\\components\\images\\middle.jpg");
b1 = new JButton("Disable middle button", Left);
b1.setVerticalTextPosition(AbstractButton.CENTER);
b1.setMnemonic(KeyEvent.VK_D);// shortcut D
b1.setActionCommand("disable");
b2 = new JButton("middle button", Middle);
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setVerticalTextPosition(AbstractButton.CENTER);
b3.setMnemonic(KeyEvent.VK_M);// shortcut M
b3 = new JButton("Enable middle button", Right);
b3.setVerticalTextPosition(AbstractButton.RIGHT);
b3.setMnemonic(KeyEvent.VK_E);// shortcut E
b3.setActionCommand("enable");
b3.setEnabled(false);
b1.addActionListener(this);
b3.addActionListener(this);
b1.setToolTipText("click on the middle button to " + "disable middle");
b3.setToolTipText("click on the middle button to " + "enable middle");
b2.setToolTipText("click disable");
add(b1);
add(b2);
add(b3);
}
public void actionPerformed(ActionEvent e) {
if ("disable".equals(e.getActionCommand())) {
b2.setEnabled(false);
b1.setEnabled(false);
b3.setEnabled(true);
} else {
b2.setEnabled(true);
b1.setEnabled(true);
b3.setEnabled(false);
}
}
protected static ImageIcon createImageIcon(String path) {
java.net.URL img = buttondemo.class.getResource(path);
if (img != null) {
return new ImageIcon(img);
} else {
System.err.println("could not find path" + path);
return null;
}
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Button demso");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buttondemo Contentpane = new buttondemo();
Contentpane.setOpaque(true);
frame.setContentPane(Contentpane);
frame.pack();
frame.setVisible(true);
}
public static void main(String args[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
看來,Java的期待該類駐留在組件包,但要麼沒有,或者它不是被執行從正確的上下文(路徑位置) – MadProgrammer
錯誤何時發生?在加載時或點擊按鈕? –
當在提示符下運行時 – Gaurav