Hola a todos. Intento hacer una GUI de swing con un botón y una etiqueta. Estoy utilizando un diseño de borde y la etiqueta (en el campo norte) aparece bien, pero el botón ocupa el resto del cuadro (está en el campo central). ¿Algúna idea de cómo arreglar esto?JButton se expande para ocupar toda la estructura/contenedor
6
A
Respuesta
9
Tiene que agregar el botón a otro panel y luego agregarlo al marco.
Resulta que el BorderLayout se expande lo que nunca componente se encuentra en el centro
El código debería tener este aspecto ahora:
Antes
public static void main(String [] args) {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
JFrame frame = ...
frame.add(label, BorderLayout.NORTH);
frame.add(button , BorderLayout.CENTER);
....
}
cambiarlo a algo como esto:
public static void main(String [] args) {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
JPanel panel = new JPanel();
panel.add(button);
JFrame frame = ...
frame.add(label, BorderLayout.NORTH);
frame.add(panel , BorderLayout.CENTER);
....
}
Antes/Después
Before http://img372.imageshack.us/img372/2860/beforedl1.png After http://img508.imageshack.us/img508/341/aftergq7.png
0
Una vez más :)
import javax.swing.*;
public class TestFrame extends JFrame {
public TestFrame() {
JLabel label = new JLabel("Some info");
JButton button = new JButton("Ok");
Box b = new Box(BoxLayout.Y_AXIS);
b.add(label);
b.add(button);
getContentPane().add(b);
}
public static void main(String[] args) {
JFrame f = new TestFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
2
o simplemente utilizar disposición absoluta. Está en Layouts Pallet.
o habilitar con:
frame = new JFrame();
... //your code here
// to set absolute layout.
frame.getContentPane().setLayout(null);
De esta manera, se puede colocar libremente el control en cualquier lugar que desee.
Cuestiones relacionadas
- 1. Menú que se expande durante la carga de la página
- 2. Lista dinámica que se expande automáticamente
- 3. MSVC no se expande __VA_ARGS__ correctamente
- 4. Java, establecer ID para JButton
- 5. Conseguir div para ocupar la altura de celda completa
- 6. onTouchListener para toda la pantalla
- 7. CSS DIV no se expande cuando se agrega más texto
- 8. WebView se expande infinitamente: ¿cómo se puede evitar esto?
- 9. Transparente JButton
- 10. ListSelector se aplica a toda la lista
- 11. Configurando JButton texto para alinear a la izquierda?
- 12. Fuerza <textarea> para ocupar todo el espacio disponible
- 13. Apilamiento de rectángulos para ocupar el menor espacio posible
- 14. ¿Por qué $ Id $ a veces no se expande en SVN?
- 15. Desactivar JButton focus border
- 16. Extender WPF ListView vacío para ocupar el espacio restante
- 17. Fuerza dos nodos para ocupar el mismo rango en Graphviz?
- 18. guía para rastrear toda la web?
- 19. iFrame no se expande al 100% de altura
- 20. Cómo GREP para toda la palabra
- 21. La variable global parece no ocupar ningún espacio de memoria
- 22. ¿Cómo hago que un div flotante se expanda dinámicamente para ocupar el máximo espacio?
- 23. isShiftDown cuando JButton presiona?
- 24. ¿Cómo evito que un DIV se expanda para ocupar todo el ancho disponible?
- 25. JPanels no se extienden por completo para ocupar el espacio disponible
- 26. La fuerza de la tabla de columnas de ancho fijo se expande en el contenedor
- 27. Haga clic derecho en JButton
- 28. Haciendo un JButton se puede hacer clic en un JTable
- 29. Cómo seleccionar realmente un JButton
- 30. div niño de posición absoluta se expande para adaptarse al padre?
¿Cuál es el LayoutManger predeterminado en el Panel? FlowLayout? –
FlowLayout, eso es correcto. – OscarRyz