0

私はJavaプログラミングで自分自身を改善しようとしています。

私がやろうとしているのは、メニューとサブメニューがあることです。たとえば、[ファイル] メニューをクリックして [コンバーター] (サブメニュー) を選択すると、コンバーター プログラムの新しいウィンドウが開きます。

ここに私のコンバーターウィンドウがあります

public class Converter extends JFrame {

    private static final long   serialVersionUID    = 1L;
    private MoneyDetails        convertMe           = new MoneyDetails();
    private JLabel              tlLabel             = new JLabel("     Amount of TL");
    private JLabel              dollarsLabel        = new JLabel("Amount of Dollars");
    private JTextField          tlField             = new JTextField("0.0");
    private JTextField          dollarsField        = new JTextField("0.0");
    private JButton             tlButton            = new JButton("Convert to $");
    private JButton             dollarsButton       = new JButton("<<< Convert to TL");
    private JButton             setRates            = new JButton("Set Rates");

    public Converter() {
        JPanel dataPanel = new JPanel(new GridLayout(2, 2, 12, 6));
        dataPanel.add(tlLabel);

        dataPanel.add(dollarsLabel);
        dataPanel.add(tlField);
        dataPanel.add(dollarsField);
        JPanel buttonPanel = new JPanel();
        buttonPanel.add(tlButton);
        buttonPanel.add(dollarsButton);
        Container container = getContentPane();
        container.add(dataPanel, BorderLayout.CENTER);
        container.add(buttonPanel, BorderLayout.SOUTH);
        tlButton.addActionListener(new TLConverter());
        dollarsButton.addActionListener(new DollarsConverter());
        buttonPanel.add(setRates);
    }
    private class TLConverter implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            try {
                String input = tlField.getText();
                double tl = Double.parseDouble(input);
                convertMe.setTL(tl);
                double dollars = convertMe.getDollars();
                dollarsField.setText(String.format("%.2f", dollars));
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(null, "Please enter the amount that will be converted.");
            }
        }
    }

    private class DollarsConverter implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String input = dollarsField.getText();
            double dollars = Double.parseDouble(input);
            convertMe.setDollars(dollars);
            double tl = convertMe.getTL();
            tlField.setText(String.format("%.2f", tl));
        }
    }

    public static void main(String[] args) {
        Converter theGUI = new Converter();
        theGUI.setTitle("TL to $ or $ to TL Converter");
        theGUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        theGUI.pack();
        theGUI.setVisible(true);
    }
}

これが私のコンバータークラスにある私のメニューです

private JMenuBar menuBar = new JMenuBar(); // Window menu bar
public Converter(String title) {
    setTitle(title);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setJMenuBar(menuBar); // Add the menu bar to the window
    JMenu fileMenu = new JMenu("File"); // Create File menu
    JMenu elementMenu = new JMenu("Elements"); // Create Elements menu
    JMenuItem subTest = new JMenuItem("Test");
    menuBar.add(fileMenu); // Add the file menu
    menuBar.add(elementMenu); // Add the element menu

    fileMenu.add(subTest);

  }

public static void main(String [] args)
{

Converter window = new Converter("Para Dönüstürücü"); 
window.setBounds(30, 30, 300, 300);
window.setVisible(true);
Converter theGUI = new Converter(); 

}

サブメニューをクリックすると、コンバータ ウィンドウが開きます。どうすればできますか?

4

2 に答える 2

0

必要なのは、次のようなイベント リスナーです。

fileMenu.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        new Converter();
      }
    });

ここでより完全な例を見ることができます。

于 2012-05-02T08:31:38.060 に答える