Buenas noches,
tengo q crear un codigo con arboles binarios, donde dan varias opciones.
mis preguntas son:
1. como hago el boton salir y q pues me saque del cuadro de dialogo.
2. los Case se pueden usar cuando trabajo con botones, ejemplo: tengo un boton "Aceptar" y pues tengo varios label (opcion 1, 2, 3, 4,....10) cada opcion es un case, debo escoger una opcion y depues click en el boton "Aceptar", de acuerdo a la opcion escogida, se da una accion, por ejemplo escojo op. 1 entonces pregunto de cuantos nodos creare mi arbol binario, si doy op 2 lo ordeno en preorden y así suscesivamente. entonces este boton lo puedo trabajar con case (si es así como lo hago). o lo trabajo con if.
gracias por su valiosa ayuda. :rolleyes:
Para hacer que el botón salir cierre la ventana donde estás tienes dos opciones, llamar al método setVi¡sible(boolean b) al hacer click sobre el botón, o llamar a el método dispose(), la diferencia es que el primero solo oculta la ventana, la segunda cierra como tal.
Ahora para hacer lo de los switch case, una opción es usar JRadioButtons y ButtonGroup para que solo se seleccione una y solo una de las opciones requeridas, el código que te presento tiene a continuación todos los elementos por los que preguntas.
package org.windowbuttons.ui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainWindow extends JFrame implements ActionListener {
private static final String EXIT_CMD = "exit";
private static final String ACCEPT_CMD = "accept";
private static final String OPC_ONE = "opc1";
private static final String OPC_TWO = "opc2";
private static final String OPC_THREE = "opc3";
private static final String OPC_FOUR = "opc4";
private JButton exitButton;
private JButton acceptButton;
private JRadioButton radioButtonOpcOne;
private JRadioButton radioButtonOpcTwo;
private JRadioButton radioButtonOpcThree;
private JRadioButton radioButtonOpcFour;
private ButtonGroup radioButtonsGroup;
public MainWindow() {
setSize(200, 200);
setResizable(false);
setLayout(new FlowLayout());
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
radioButtonsGroup = new ButtonGroup();
radioButtonOpcOne = new JRadioButton("Opcion 1");
radioButtonOpcTwo = new JRadioButton("Opcion 2");
radioButtonOpcThree = new JRadioButton("Opcion 3");
radioButtonOpcFour = new JRadioButton("Opcion 4");
radioButtonOpcOne.setActionCommand(OPC_ONE);
radioButtonOpcTwo.setActionCommand(OPC_TWO);
radioButtonOpcThree.setActionCommand(OPC_THREE);
radioButtonOpcFour.setActionCommand(OPC_FOUR);
radioButtonsGroup.add(radioButtonOpcOne);
radioButtonsGroup.add(radioButtonOpcTwo);
radioButtonsGroup.add(radioButtonOpcThree);
radioButtonsGroup.add(radioButtonOpcFour);
exitButton = new JButton("Sarlir");
acceptButton = new JButton("Aceptar");
exitButton.setActionCommand(EXIT_CMD);
acceptButton.setActionCommand(ACCEPT_CMD);
exitButton.addActionListener(this);
acceptButton.addActionListener(this);
add(radioButtonOpcOne);
add(radioButtonOpcTwo);
add(radioButtonOpcThree);
add(radioButtonOpcFour);
add(acceptButton);
add(exitButton);
}
public static void main(String[] args) {
MainWindow mw = new MainWindow();
mw.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(EXIT_CMD)) {
this.dispose();
}
if(e.getActionCommand().equals(ACCEPT_CMD)) {
String cmd = radioButtonsGroup.getSelection().getActionCommand();
switch (cmd) {
case OPC_ONE:
JOptionPane.showMessageDialog(this, "Opcion 1 seleccionada");
break;
case OPC_TWO:
JOptionPane.showMessageDialog(this, "Opcion 2 seleccionada");
break;
case OPC_THREE:
JOptionPane.showMessageDialog(this, "Opcion 3 seleccionada");
break;
case OPC_FOUR:
JOptionPane.showMessageDialog(this, "Opcion 4 seleccionada");
break;
}
}
}
}
Si tienes alguna duda no dudes en preguntar.
Saludos
esta muy bien lo que te dice RyogiShiki pero tambien podrias usar un jcombobox