Componentes avanzados de Java Swing: paneles de escritorio y formularios internos

Panel de escritorio y formulario interno

Es necesario usar varias ventanas en una aplicación GUI. Puede haber dos estrategias de administración para estas ventanas. Una es que cada ventana es un formulario independiente. La ventaja es que se pueden usar los botones y las teclas de acceso directo en el formulario principal del sistema. Examinar todas las ventanas; la otra es proporcionar un formulario principal y luego poner otras ventanas en el formulario principal, la ventaja es que las ventanas están relativamente ordenadas.

Cuando use la segunda estrategia para administrar ventanas, debe usar la clase JDesktopPane y la clase JInternalFrame (clase de panel de escritorio y clase de marco interno). La clase JDesktopPane es una clase contenedora que se usa para crear un escritorio virtual; la clase JInternalFrame es un objeto liviano que se usa para crear un marco interno que admite arrastrar, cerrar, iconizar, cambiar el tamaño, mostrar el título y la barra de menú.

Métodos comunes en la clase JDesktopPane

método Descripción
getAllFrames () Devuelve todos los JInternalFrame que se muestran actualmente en el escritorio en forma de matriz
getSeletedFrame () Obtener el escritorio seleccionado actualmente
eliminar todo() Eliminar todo JInternalFrame del escritorio
eliminar (índice int) Quite el JInternalFrame en la posición de índice especificada del escritorio
setSelectedFrame (JInternalFrame f) Establecer el JInternalFrame especificado
setDragMode (int dragMode) Establezca el modo de arrastre del formulario, las constantes estáticas opcionales de los parámetros de entrada son LIVE_DRAG_MODE y OUTLINE_DRAG_MODE

Clase JInternalFrame

Cuando la clase JInternalFrame crea un método de construcción, el número máximo de parámetros de entrada que se pueden establecer es 5.

JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable)

Descripción del parámetro:
título : el título del marco interno.
resizable: establezca si desea permitir el cambio de tamaño libre, establezca en verdadero para permitirlo y falso (predeterminado) para permitirlo.
que se puede cerrar: establezca si desea proporcionar un botón "cerrar", establecer en verdadero para proporcionar y falso (predeterminado) para proporcionar.
maximizable: establezca si desea proporcionar el botón "maximizar", establecer en verdadero para proporcionar y falso (predeterminado) para proporcionar.
iconifiable: establezca si se debe proporcionar un botón "minimizar", establecer en verdadero para proporcionar y falso (predeterminado) para proporcionar.

Métodos comunes en la clase JInternalFrame

método Descripción
setResizable (booleano b) Establecer si permitir el cambio de tamaño gratuito
setClosable (booleano b) Establecer si se debe proporcionar un botón de cierre
setMaximizable (booleano b) Establecer si se debe proporcionar un botón "maximizar"
setIconifiable (booleano b) Establecer si se debe proporcionar un botón "minimizar"
setSelected (booleano seleccionado) Establecer si el formulario está activado, establecer en verdadero para activar, establecer en falso (valor predeterminado) para desactivar el formulario
isMaximum () Compruebe si la forma está maximizada
isIcon () Compruebe si el formulario está minimizado
está cerrado() Comprueba si el formulario ha sido cerrado
setFrameIcon (icono de icono) Establecer el icono que se muestra en la barra de título del formulario

Cree un panel de escritorio y un formulario interno, el código es el siguiente:

package study.czm;

import java.awt.Container;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;

public class Study {
    
    

	public static void main(String[] args) {
    
    

		JFrame jf = new JFrame();
		jf.setTitle("表格组件");
		jf.setSize(600, 500);
		jf.setLocationRelativeTo(null);
		jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
		Container c = jf.getContentPane();

		JDesktopPane desktopPan = new JDesktopPane();// 创建桌面面板对象
		desktopPan.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);// 设置内部窗体的拖拽方式
		c.add(desktopPan);
		// 创建内部窗体
		JInternalFrame inFrame1 = new JInternalFrame("第一个内部窗体", true, true, true, true);
		JInternalFrame inFrame2 = new JInternalFrame("第二个内部窗体", true, true, true, true);
		JInternalFrame inFrame3 = new JInternalFrame("第三个内部窗体", true, true, true, true);
		desktopPan.add(inFrame1);
		inFrame1.setBounds(50, 50, 200, 200);
		inFrame1.setVisible(true);
		desktopPan.add(inFrame2);
		inFrame2.setBounds(90, 90, 200, 200);
		inFrame2.setVisible(true);
		desktopPan.add(inFrame3);
		inFrame3.setBounds(130, 130, 200, 200);
		inFrame3.setVisible(true);

		jf.setVisible(true);

	}
}

resultado de ejecución:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/javanofa/article/details/106141405
Recomendado
Clasificación