Wątek przeniesiony 2015-06-24 18:05 z Java przez bogdans.

JButton kliknięty tylko raz

2015-06-24 17:21
0

Witam, mam taki problem potrzebuje aby przycisk mógł zostać kliknięty tylko raz, tzn. jeżeli login i hasło są poprawne to przycisk zaloguj można kliknąć tylko raz, natomiast gdy zły to dopóki nie zaloguje się poprawnie. Głównie chodzi o to żeby można było tylko raz przycisnąć JButtona.

Pozostało 580 znaków

2015-06-24 17:24

No to w czym problem ? jesli dane poprawne chowaj buttona, ewentualnie dezaktywuj , odpinaj sluchacza co kto woli


Jestem początkujący.
edytowany 1x, ostatnio: Rossik, 2015-06-24 17:27
Konkretny tag językowy! Albo next time kosz. - olesio 2015-06-24 21:04
Konkretny kod napisałem poniżej ale było już po zawodach.. - Rossik 2015-06-24 21:06
Sorry. Bo to było do autora wątku. A źle przeskrolowałem wątek i dodałem komentarz pod złym postem. Ale tak to jest gdy człowiek się lituje. Mieliśmy osobm z 5 do 10 i więcej postów z furiousm wywalać wątki od razu do kosza za niską czytelność, ale ciągle się lituję. I poprawiam tagi usuwając te bzdetne. A na tablecie nie jest za łatwo. - olesio 2015-06-24 22:48
Spoko ja tez czasem pisze z komorki .. prawda jest taka ze nawet jak poswiecisz ten czas na napisanie kodu nie wiadomo czy o to chodzi... no ale ;) milego! - Rossik 2015-06-24 22:52

Pozostało 580 znaków

2015-06-24 18:39
0

już w niczym, przycisk został schowany :)

Pozostało 580 znaków

2015-06-24 19:40
0

Znalazłem chwilkę czasu by stworzyć jakiś przykładowy kod, który pozwoli zrozumieć zasadę działania :

  1. Schowanie dezorganizuje widok - w zależności od layoutu
  2. Pamiętaj, że jakiekolwiek zmiany w elementach widoku powinny być wykonywane w tym samym wątku
package button;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Button extends JFrame implements ActionListener {

    private int increment;
    private JButton loginButton;
    private JButton hideButton;
    private JButton disableButton;
    private JButton unmountButton;
    private JTextField text;

    public Button() {
        init();
    }

    private void init() {

        JPanel topPanel = new JPanel();
        JPanel bottomPanel = new JPanel();
        text = new JTextField(8);

        loginButton = createButton("Login");
        hideButton = createButton("Hide");
        disableButton = createButton("Disable");
        unmountButton = createButton("Unmount");

        topPanel.add(loginButton);
        topPanel.add(text);
        bottomPanel.add(hideButton);
        bottomPanel.add(disableButton);
        bottomPanel.add(unmountButton);

        setLayout(new BorderLayout());
        setLocationRelativeTo(null);
        add(topPanel, BorderLayout.NORTH);
        add(bottomPanel, BorderLayout.SOUTH);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Button");
        setSize(300, 150);
        setVisible(true);
    }

    private JButton createButton(String name) {
        JButton temp = new JButton(name);
        add(temp);
        temp.addActionListener(this);
        return temp;
    }

    public static void main(String[] args) {
        new Button();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource().equals(loginButton)) {
            text.setText("Loguje " + ++increment);
        } else if (e.getSource().equals(hideButton)) {

            if (hideButton.getText().equals("Hide")) {
                changeButton(hideButton, "Unhide", false);
            } else {
                changeButton(hideButton, "Hide", true);
            }

        } else if (e.getSource().equals(disableButton)) {
            if (disableButton.getText().equals("Disable")) {
                changeButton(disableButton, "Enable", false);
            } else {
                changeButton(disableButton, "Disable", true);
            }
        } else if (e.getSource().equals(unmountButton)) {
            if (unmountButton.getText().equals("Unmount")) {
                changeButton(unmountButton, "Mont", false);
            } else {
                changeButton(unmountButton, "Unmount", true);
            }
        }
    }

    private void changeButton(JButton button, String name, boolean value) {
        if (button.equals(hideButton))
            loginButton.setVisible(value);
        else if (button.equals(disableButton)) {
            loginButton.setEnabled(value);

        } else if (button.equals(unmountButton)) {
            if (!value) {
                loginButton.removeActionListener(this);
                text.setText("Odpięty");
            } else
                loginButton.addActionListener(this);
        }
        button.setText(name);
    }

}

Jestem początkujący.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0