¡Es necesario explicar en detalle el uso del componente del árbol de Java JTree! !
Importar Java .awt .dimensión; clase pública Aplicación 1 {
boolean packFrame = false/**
*Construye y muestra la aplicación.
*/
Aplicación pública 1() {
fotograma 1 fotograma = nuevo fotograma 1();
//Marco de verificación con tamaño preestablecido
//Empaque un marco con información útil sobre el tamaño preferido, como información de su diseño
if (packFrame) {
frame .pack( );
}
si no {
frame.validate().
} //Centra la ventana
dimensión screenSize = toolkit . getScreenSize();
dimensión frameSize = frame . getsize();
if(framesize . altura & gt; screenSize.height) {
framesize . = tamaño de pantalla .
}
if(tamaño de marco . ancho & gt; tamaño de pantalla.ancho) {
ancho de marco = ancho de pantalla;
p>
p>
}
marco establecer ubicación ((tamaño de pantalla. ancho-tamaño de marco. ancho)/2,
(tamaño de pantalla. altura-tamaño de marco. altura )/2);
frame .set visible(true);
} /**
*Punto de entrada de la aplicación.
*
* @param args string[]
*/
Public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run(){
prueba {
ui manager . setlookandfeel (ui manager . getsystemlookandfeelclassname());
}
catch(Exception){
excepción .printstacktrace();
}Nueva aplicación. 1();
}
});
}
}Demo del paquete 1;
Importar Java.awt.toolkit;
Importar utilidades javax.swing.swing;
Importar administrador javax.swing.ui;
Importar dimensión Java.awt;
Importar Java . awt *;
Importar javax . Java.awt.rectangle;
Importar javax.swing.tree.defaultmutabletreenode;
Importar javax.swing.border factory;Marco de clases público 1
JFrame extendido {
JPanel contentPane
JPanel JPanel 1 = nuevo JPanel();
JTree JTree 1;
BorderLayout BorderLayout 1 = nuevo BorderLayout ();
Marco público 1() {
Pruebe {
setDefaultCloseOperation(EXIT _ ON _ CLOSE
JB init); ();
}
catch(Exception){
excepción . printstacktrace();
} p>
*Inicialización de componentes.
*
* @throws java.lang.Exception
*/
Private void jbInit() lanza una excepción { p >
panel de contenido =(JPanel)obtener panel de contenido();
panel de contenido establecer diseño(nulo);
setSize(nueva dimensión (465, 380));
setTitle("título del marco");
jpanel 1. set border(border factory. createetchedborder());
jPanel1.setBounds(nuevo rectángulo ( 37, 12, 216, 317));
jpanel 1. establecer diseño(borderlayout 1);
panel de contenido agregar(jpanel 1);
defaultmutabletreenode root = new defaultmutabletreenode("nodo raíz");
defaultmutabletreenode r 1 = new defaultmutabletreenode("nodo hijo");
defaultmutabletreenode r 01 = new defaultmutabletreenode("nodo hijo" Nodo bajo ");
Nodo DefaultMutableTree R2 = nuevo nodo DefaultMutableTree ("nodo secundario 2");
Nodo DefaultMutableTree R3 = nuevo nodo DefaultMutableTree ("nodo secundario tres");
//Agregar nodos secundarios al nodo raíz
root . >r 1 .add(r 01);
raíz .add(R3
JTree 1 = nuevo JTree(raíz); (jTree1, Java . awt . borderlayout . north);
//Pase el nodo raíz
this set visible(true); setBounds(100, 100, 400, 500);}
Public static void main(String[] args) {
fotograma 1 f = nuevo fotograma 1();
p>
}
}