Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
Cambiar la ubicación de Jpanel de Jframe a JDialog

Digamos que tengo 1 marco, 1 JDialog y 1 panel. El panel está en el marco. Lo que quiero hacer es si se hace clic en un botón, quiero cambiar la ubicación del panel a JDialog. Necesito dos ventanas, así que uso Jdialog para eso. Tal vez haya una mejor manera de crear esa ventana en lugar de usar JDialog.

Parte de mi código:

 public class Bestellterminal { private static JPanel panel; public static void addComponentsToPane(final Container pane) {} public static void addComponentsToPane1(final Container pane) {} public static void addComponentsToPane2(final Container pane) { final JPanel kpanel1 = new JPanel(); kpanel1.setBounds(0 + insets.left, 0 + insets.top, size.width + 900, size.height + 700); kpanel1.setVisible(true); final JDialog meinJDialog = new JDialog(); meinJDialog.setTitle("Küchenterminal"); meinJDialog.setSize(1200,900); meinJDialog.setVisible(true); meinJDialog.setLayout(null); meinJDialog.add(kpanel1); Classic.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (brclassic == 1) { if (kunde == 1) {Bestellpanel.add(buttonx);buttonx.setVisible(true);brclassic++; kpanel1.add(Bestellpanel); } } } private static void createAndShowGUI() { JFrame frame = new JFrame("test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); addComponentsToPane(frame.getContentPane()); addComponentsToPane1(frame.getContentPane()); addComponentsToPane2(frame.getContentPane()); Insets insets = frame.getInsets(); frame.setSize(1200 + insets.left + insets.right, 900 + insets.top + insets.bottom); frame.setVisible(true); } public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hice un ejemplo simple usando dos JFrames, realmente podría hacerse con cualquier tipo de contenedor/diseño.

 package helloworld; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import java.awt.BorderLayout; /** * Created on 4/30/17. */ public class SwapPanel { public static void main(String[] args){ JPanel panel = new JPanel(); panel.add(new JLabel("mover")); JFrame a = new JFrame("frame a"); JButton aButton = new JButton("swap"); JFrame b = new JFrame("frame b"); JButton bButton = new JButton("swap"); bButton.setEnabled(false); a.getContentPane().add(aButton, BorderLayout.SOUTH); a.getContentPane().add(panel, BorderLayout.CENTER); b.getContentPane().add(bButton, BorderLayout.SOUTH); aButton.addActionListener(evt->{ if(aButton.isEnabled()){ aButton.setEnabled(false); a.getContentPane().remove(panel); b.getContentPane().add(panel, BorderLayout.CENTER); bButton.setEnabled(true); a.pack(); b.pack(); a.repaint(); b.repaint(); } }); bButton.addActionListener(evt->{ if(bButton.isEnabled()){ bButton.setEnabled(false); b.getContentPane().remove(panel); a.getContentPane().add(panel, BorderLayout.CENTER); aButton.setEnabled(true); a.pack(); b.pack(); a.repaint(); b.repaint(); } }); a.pack(); a.setVisible(true); b.pack(); b.setVisible(true); a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Lo más importante que se debe hacer es quitar el panel de un diseño/contenedor, luego agregar el panel de componentes a otro contenedor y finalmente validar/repintar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda