public class Lanzador extends JFrame {
private JButton btProg1;
private JButton btProg2;
public Lanzador() {
btProg1 = new JButton("Saludo");
btProg1.addActionListener(new LanzarSaludo());
btProg2 = new JButton("Sumar");
btProg2.addActionListener(new LanzarSuma());
JPanel pnMensaje = new JPanel();
pnMensaje.add(new JLabel("Elija un programa"));
pnMensaje.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEmptyBorder(20,30,20,30),
BorderFactory.createRaisedSoftBevelBorder()));
JPanel pnBotones = new JPanel();
pnBotones.add(btProg1);
pnBotones.add(btProg2);
pnBotones.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEmptyBorder(20,30,20,30),
BorderFactory.createLoweredSoftBevelBorder()));
setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
add(pnMensaje);
add(pnBotones);
setTitle("Lanzador");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void ocultar() {
setVisible(false);
}
private void mostrar() {
setVisible(true);
}
private class LanzarSaludo implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
ocultar();
ProcessBuilder pb = new ProcessBuilder();
pb.command(Arrays.asList("cmd", "/C", "Start","java", "HolaMundo.java"))
.directory(new File("src/programasCMD"));
try {
Process proceso = pb.start();
while(proceso.isAlive());
mostrar();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
private class LanzarSuma implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
ocultar();
ProcessBuilder pb = new ProcessBuilder();
pb.command(Arrays.asList("cmd", "/C", "Start","java", "Sumar.java"))
.directory(new File("src/programasCMD"));
try {
Process proceso = pb.start();
while(proceso.isAlive());
mostrar();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Lanzador();
}
});
}
}