Я хочу сделать текстовое поле редактируемым, только если в Netbeans установлен флажок - PullRequest
1 голос
/ 08 марта 2012

Я использую NetBeans, и я хочу, чтобы текстовое поле можно было редактировать только тогда, когда пользователь нажимает флажок.У меня так, когда они устанавливают флажок, текстовое поле становится редактируемым, но как мне сделать так, чтобы при снятии флажка текстовое поле снова становилось недоступным для редактирования?

Код Iиспользуется, чтобы сделать его редактируемым -

private void chk4By6MouseClicked(java.awt.event.MouseEvent evt) {
    txt4By6.setEditable(true);
}

Ответы [ 3 ]

5 голосов
/ 08 марта 2012

Используйте ItemListener , чтобы вы могли включить или отключить JTextField в зависимости от того, JCheckBox равен SELECTED или DESELECTED соответственно.

Пример программы:

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

public class ModifyTextField 
{
    public static void createAndDisplayGUI()
    {
        JFrame frame = new JFrame("MODIFY TEXTFIELD");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationByPlatform(true);

        final JPanel contentPane = new JPanel();

        final JTextField tfield = new JTextField(10);
        tfield.setEnabled(false);

        final JCheckBox cbox = new JCheckBox("Enable TEXTFIELD", false);

        ItemListener itemListener = new ItemListener()
        {
            public void itemStateChanged(ItemEvent ie)
            {
                tfield.setEnabled(ie.getStateChange() == ItemEvent.SELECTED)
            }
        };
        cbox.addItemListener(itemListener);

        contentPane.add(cbox);
        contentPane.add(tfield);

        frame.getContentPane().add(contentPane);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndDisplayGUI();
            }
        });
    }
}

Результат:

DESELECTED и SELECTED

1 голос
/ 08 марта 2012

См .: http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

Прочтите все это, если вы действительно хотите узнать, как это работает.

0 голосов
/ 08 марта 2012

Рассматривали ли вы:

private void chk4By6MouseClicked(java.awt.event.MouseEvent evt) {
    txt4By6.setEditable(!txt4By6.isEditble());
}

Или, может быть, даже ... (при условии, что chk4By6 - флажок колебания)

private void chk4By6MouseClicked(java.awt.event.MouseEvent evt) {
    txt4By6.setEditable(chk4By6.isSelected());
}

И третий метод может быть:

private void chk4By6ActionPerformed(ActionEvent evt) {
    txt4By6.setEditable(chk4By6.isSelected());
}
...