Como parte de mi programa, necesito tener un botón que, cuando el usuario haga clic en él, se abre una nueva ventana.

Bueno, supongo que debe tener una clase que hacen que el marco y la llaman por el botón. pero no tengo ninguna idea para empezar. Acabo de recibir mi botón en el programa, pero no funciona. Así que algunos pueden decirme cómo hacerlo? o código.

InformationsquelleAutor Alex Jj | 2013-03-20

2 Comentarios

  1. 5

    Aquí es una versión simplificada de lo que usted desea hacer:

    JButton button = new JButton("New Frame");
    button.addActionListener( new ActionActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            //Create a method named "createFrame()", and set up an new frame there
            //Call createFrame()
        }
    });

    Probablemente desee llamar a un método en el ActionListener en lugar de hacer el frame en actionPerformed. Tal vez algo como esto:

    public static void createFrame()
    {
    EventQueue.invokeLater(new Runnable()
    {
    @Override
    public void run()
    {
    JFrame frame = new JFrame("Test");
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    try 
    {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    e.printStackTrace();
    }
    JPanel panel = new JPanel();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
    panel.setOpaque(true);
    JTextArea textArea = new JTextArea(15, 50);
    textArea.setWrapStyleWord(true);
    textArea.setEditable(false);
    textArea.setFont(Font.getFont(Font.SANS_SERIF));
    JScrollPane scroller = new JScrollPane(textArea);
    scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    JPanel inputpanel = new JPanel();
    inputpanel.setLayout(new FlowLayout());
    JTextField input = new JTextField(20);
    JButton button = new JButton("Enter");
    DefaultCaret caret = (DefaultCaret) textArea.getCaret();
    caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
    panel.add(scroller);
    inputpanel.add(input);
    inputpanel.add(button);
    panel.add(inputpanel);
    frame.getContentPane().add(BorderLayout.CENTER, panel);
    frame.pack();
    frame.setLocationByPlatform(true);
    frame.setVisible(true);
    frame.setResizable(false);
    input.requestFocus();
    }
    });
    }

    Lo que marco debe verse como:

    Cómo abrir una nueva ventana al hacer clic en un botón

    • Gracias por la respuesta y el tiempo. Im un poco confundido con su solución. para el botón que exactamente copiado lo que usted proporcionó. por otro lado, he hecho una clase y el diseño de la nueva ventana. Lo que no sé cómo llamarlo por la acción de escucha. y qué poner en la nueva ventana la página de vincular el botón.
    • Asegúrese de tener todos sus importaciones en orden, y que si tiene createFrame() en otra clase, lo llama con Classname.createFrame().
  2. -1
    new CLASS_NAME().setVisible(true);

    por ejemplo. nueva NewJFrame().setVisible(true);

Dejar respuesta

Please enter your comment!
Please enter your name here