0

これが私のメモ帳アプリケーションのビューです。centerPanel のテキストエリアを検索するコントローラーを作成する必要があります。JButton とテキストフィールドが定義されており、ユーザーがフィールドにテキストを入力し、ボタンを押して検索されたテキストを強調表示できるようにしたいと考えています。すべての ActionListeners を新しいクラスで定義しました。

public NotepadView() {
        super();
        //WINDOW
        setSize (750,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Chad's Notepad");
        setLocationRelativeTo(null);
        setBackground(Color.BLACK);

        //CENTER PANEL
        centerPanel = new JPanel();
        centerPanel.setLayout(new FlowLayout());
        textArea = new JTextArea();
        centerPanel.add(textArea);
        add(centerPanel, BorderLayout.CENTER);
        scrollPaneText = new JScrollPane(textArea);
        add(scrollPaneText);
        textArea.setLineWrap(true);
        textArea.setFont(new Font("Garamond", Font.PLAIN, 18));

        //BOTTOM PANEL
        bottomPanel = new JPanel();
        bottomPanel.setLayout(new GridLayout(1,2));
        setButton = new JButton("Find");
        textField = new JTextField("EnterText");
        bottomPanel.add(setButton);
        bottomPanel.add(textField);
        add(bottomPanel, BorderLayout.SOUTH);

        //MENU BAR
        menuBar = new JMenuBar();
        fileMenu = new JMenu("File");   
        newItem = new JMenuItem("New");
        openItem = new JMenuItem("Open");
        saveItem = new JMenuItem("Save");
        closeItem = new JMenuItem("Close");
        menuBar.add(fileMenu);
        fileMenu.add(newItem);
        fileMenu.add(openItem); 
        fileMenu.add(saveItem); 
        fileMenu.add(closeItem);
        setJMenuBar(menuBar);

        newItem.addActionListener(new NewMenuCommand(textArea));
        openItem.addActionListener(new OpenMenuCommand(textArea));
        closeItem.addActionListener(new QuitMenuCommand());
        saveItem.addActionListener(new SaveMenuCommand(textArea));
    }
}

//ActionListener ボタンの新しいクラス

    public class ButtonCommand implements ActionListener {
    private JTextArea textArea;
    private String hText;
    int ind = 0;
    private String findString;


    public ButtonCommand (JTextArea ta){
        textArea = ta;
    }

    public void actionPerformed (ActionEvent e){
         hText = textArea.getText();
         findString=JOptionPane.showInputDialog(null,"Find   what","Find",JOptionPane.INFORMATION_MESSAGE);
         ind = hText.indexOf(findString,0);
         textArea.setCaretPosition(ind);
         textArea.setSelectionStart(ind);
         int a = ind+findString.length();
         textArea.setSelectionEnd(a);
    }
}
4

0 に答える 0