jTogglebutton nur 1x klickbar

c_sidi90

Top Contributor
Hey Leute, der Feierabend ist nah und dementsprechend flattern die Gehirnzellen ins leere :p

Kann mir einer verraten wie die Methode lautet um einen jTogglebutton so zusetzen, dass er nur 1x angeklickt werden kann bzw die selektierung nicht aufgehoben werden kann? Find die Funktion leider grad nicht.

Mfg

Sidi
 

diel2001

Bekanntes Mitglied
2 Möglichkeiten die mir einfallen
Java:
removeActionListener();

Java:
setEnabled(false);

Am besten nach dem Klick aufrufen
 

c_sidi90

Top Contributor
mit setEnabled(false) bestimm ich ja das der Button nie gedrückt werden kann. Ich möchte jedoch erreichen, dass er nur 1x gedrückt werden kann und danach gedrückt bleibt. :/

Warscheinlich gibts die Funktion so garnicht und ich muss ihn am Ende der Methode die ihn aufruft auf false setzen, wäre mir aber nicht so lieb.
 

c_sidi90

Top Contributor
ach wursti, habs jetzt doch am Ende der Methode gemacht, hauptsache es funktioniert ;) Danke für den Gedankenanstoss

Java:
public void defineButtons(JToggleButton btn){
		if (btn.getModel().isSelected()){
				btn.setText(Integer.toString(mienen[btn.LEFT/27][btn.TOP/21]));
			}
			
			btn.setEnabled(false);
		}
 

vladimir

Aktives Mitglied
Hi hier auf die Schnelle in netbeans zusammengecklickert ;)
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * JTButton.java
 *
 * Created on 02.11.2010, 16:08:57
 */

package test;

/**
 *
 * @author vladimir.petrenko
 */
public class JTButton extends javax.swing.JFrame {

    /** Creates new form JTButton */
    public JTButton() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jToggleButton1 = new javax.swing.JToggleButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jToggleButton1.setText("jToggleButton1");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addComponent(jToggleButton1)
                .addContainerGap(40, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addComponent(jToggleButton1)
                .addContainerGap(25, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        if(jToggleButton1.isSelected())
            jToggleButton1.setSelected(true);
        else jToggleButton1.setSelected(true);
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JTButton().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JToggleButton jToggleButton1;
    // End of variables declaration

}

wichtig ist der Listener ->>
Java:
 private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        if(jToggleButton1.isSelected())
            jToggleButton1.setSelected(true);
        else jToggleButton1.setSelected(true);
    }

Oder noch einfacher
Java:
 private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
         jToggleButton1.setSelected(true);
    }

Ich hoffe ich habe Dich richtig verstanden, danach kannst Du den Listener abmelden und der wird nie wieder aufgerufen!
Gruß Vladimir
 
Zuletzt bearbeitet:

c_sidi90

Top Contributor
Danke aber du hattest die Frage wohl falsch verstanden, hab meine Lösung die deutlich kürzer istja auch schon gepostet :) Schönen Feierabend an alle!
 

Ähnliche Java Themen

Neue Themen


Oben