1

学校の課題用に Swing アプレットを作成する必要があり、さまざまな Swing チュートリアルを参照して使用するためのリンク ( http://java.sun.com/docs/books/tutorial/uiswing/components/index.html ) が提供されました。それらの 1 つを使用して、固有の Java アプレットを作成します。How To Use Radio Buttons チュートリアルのコードに従うことにしました。コードを読んで、自分の写真と一致するように変更しながら入力しました。私が持っているコードは

package components;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class OSButtons extends JPanel implements ActionListener {

    static String windowsString = "Windows";
    static String linuxString = "Linux";
    static String macString = "Mac";

    JLabel picture;

    public OSButtons() {
        super(new BorderLayout());

        JRadioButton windowsButton = new JRadioButton(windowsString);
        windowsButton.setMnemonic(KeyEvent.VK_W);
        windowsButton.setActionCommand(windowsString);
        windowsButton.setSelected(true);

        JRadioButton linuxButton = new JRadioButton(linuxString);
        linuxButton.setMnemonic(KeyEvent.VK_L);
        linuxButton.setActionCommand(linuxString);

        JRadioButton macButton = new JRadioButton(macString);
        macButton.setMnemonic(KeyEvent.VK_M);
        macButton.setActionCommand(macString);

        ButtonGroup group = new ButtonGroup();
        group.add(windowsButton);
        group.add(linuxButton);
        group.add(macButton);

        windowsButton.addActionListener(this);
        linuxButton.addActionListener(this);
        macButton.addActionListener(this);

        picture = new JLabel(createImageIcon("images/" + windowsString + ".gif"));
        picture.setPreferredSize(new Dimension(200, 150));

        JPanel radioPanel = new JPanel(new GridLayout(0, 1));
        radioPanel.add(windowsButton);
        radioPanel.add(linuxButton);
        radioPanel.add(macButton);

        add(radioPanel, BorderLayout.LINE_START);
        add(picture, BorderLayout.CENTER);
        setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    }

    public void actionPerformed(ActionEvent e) {
        picture.setIcon(createImageIcon("images/" + e.getActionCommand() + ".gif"));
    }

    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = OSButtons.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("OSButtons");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JComponent newContentPane = new RadioButtonDemo();
        newContentPane.setOpaque(true);
        frame.setContentPane(newContentPane);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

それが読めることを願っています。とにかく、コードをコンパイルしたところ、次のエラーが発生しました。

ここに画像の説明を入力

これらを修正する限り、ここから先に進む方法が本当にわかりません. 提供できるヘルプは大歓迎です。

4

1 に答える 1

1

変化する...

picture = newJLabel(createImageIcon("images/"+ windowsString + ".gif"));

に...

picture = new JLabel(createImageIcon("images/"+ windowsString + ".gif"));

変化する

radiopanel.add(macButton);

に...

radioPanel.add(macButton);

Java では大文字と小文字が区別され、変数名は大文字と小文字が一致する必要があります

これ...

JComponent newContentPane = new RadioButtonDemo();

コピー&ペーストのエラーだと思います。class元のコードの名前を変更しましたが、それへの参照を変更するのを忘れました。

試す...

JComponent newContentPane = new OSButtons();

その代わり

アップデート

わかった。にソース ファイルがあるとしますC:\Users\Keith\Desktop\components

コマンドプロンプトで、次のようなものを使用してコンパイルします...

C:\> cd C:\Users\Keith\Desktop
C:\Users\Keith\Desktop> javac components.OSButtons.java
C:\Users\Keith\Desktop> java components.OSButtons

パッケージ名と予想されるクラス ファイルのディレクトリとの間に直接的な関連性があります。

于 2013-08-12T02:05:45.220 に答える