Bom dia galera!
Estou fazendo uma interface que está me deixando meio doido rsrsrs, bom eu já tentei fazer varias coisas e não consegui colocar minha
JTree dentro do primeiro Painel da JSplitPane, não sei se é algo bobo e não estou conseguindo visualizar mais está tenso, pesquisei
varias coisas e ainda não deu certo. Quando eu insiro a JTree ela toma o espaço todo do Frame fazendo assim desaparecer o JSplitPane,
pois no caso eu tenho que ter a JTree na parte de cima e outras informações no segundo Painel na parte de baixo.
Segue uma imagem para melhor ilustrar:
Na Area 1 tem que conter minha JTree e na Area 2 são outras informações que ainda vou desenvolver.
http://imageshack.us/photo/my-images/571/areas.jpg/
Segue também meu código, porém para ele funcionar tem que mudar o diretório que eu estou pegando as informações para popular
a JTree:
package view;
import java.awt.BorderLayout;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class Relatorios2 extends JFrame {
private JSplitPane splitPane;
private JPanel painel1;
private JPanel painel2;
private JScrollPane scroll1;
private JScrollPane scroll2;
private JToolBar barBotoes = new JToolBar();
private JButton btnInformaParametros = new JButton();
private JButton btnListaRelatorios = new JButton();
private JButton btnMontaRelatorio = new JButton();
private JButton btnVoltar = new JButton();
private DefaultMutableTreeNode rootNode;
private JTree tree;
private JScrollPane scroll;
public Relatorios2() {
init();
}
public void init(){
this.setTitle("Relatórios");
this.setSize(600, 700);
this.setLocationRelativeTo(null);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setIconImage(new ImageIcon(getClass().getResource("/image/ICONE_TITULO.png")).getImage());
painel1 = new JPanel();
painel2 = new JPanel();
scroll1 = new JScrollPane(painel1);
scroll2 = new JScrollPane(painel2);
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, scroll1, scroll2);
splitPane.setOneTouchExpandable(false);
splitPane.setDividerLocation(400);
getContentPane().add(splitPane);
barBotoes.setBounds(0, 0, 600, 45);
barBotoes.setFloatable(false);
btnInformaParametros.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Relatorios/BT_Informa_Parametros_Selecao.png")));
btnListaRelatorios.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Relatorios/BT_Lista_Relatorios.png")));
btnMontaRelatorio.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Relatorios/BT_Monta_Relatorio.png")));
btnVoltar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/image/BTS_Relatorios/BT_Voltar.png")));
barBotoes.add(btnInformaParametros);
barBotoes.add(btnListaRelatorios);
barBotoes.add(btnMontaRelatorio);
barBotoes.add(btnVoltar);
getContentPane().add(barBotoes, BorderLayout.NORTH);
rootNode = new DefaultMutableTreeNode("Relatórios");
tree = new JTree(rootNode);
scroll = new JScrollPane(tree);
scroll.setBounds(50, 0, 600, 325);
getContentPane().add(scroll, BorderLayout.CENTER);
//Chama o método para popular o JTree
listAllFiles("C:\\Users\\diego\\Desktop\\Relatorios", rootNode, true);
this.setVisible(true);
}
/*
* @params: String directory - o diretório a trabalhar
* @params: DefaultMutableTreeNode parent - o node pai
* @params: Boolean recursive - determina se vai trabalhar com as subpastas, ou só o pai
*/
public static void listAllFiles(String directory, DefaultMutableTreeNode parent, Boolean recursive) {
// Lista todos os arquivos no diretório "String directory" no array "children"
File[] children = new File(directory).listFiles();
for (int i = 0; i < children.length; i++) {
// Pega o nome de cada Pasta ou Arquivo
DefaultMutableTreeNode node = new DefaultMutableTreeNode(children[i].getName());
// Só mostra o Node se ele é uma pasta e se esta é uma chamada recursiva
if (children[i].isDirectory() && recursive) {
parent.add(node); // adiciona como filho
listAllFiles(children[i].getPath(), node, recursive); // chamada recursiva para trabalhar com o filho
} else if (!children[i].isDirectory()) { // senão caso não seja um diretório
parent.add(node); // adiciona como um arquivo
}
}
}
public static void main(String[] args) {
new Relatorios2();
}
}
Agradeço a ajuda de todos! :thumbup: