0
내 프로그램에 파일을 탐색하는 기능을 추가하려고했습니다. 여기에서 코드를 사용하고 싶습니다 : 1 (Gilbert의 대답), JTree를 특정 위치와 크기로 갖는 것이 중요했습니다. 불행히도, 내가 이것을했을 때, JTree는 그것을 클릭 할 때 "응답"하지 않습니다.LayoutManager없이 JTree를 사용할 수 없습니다.
public class Frame extends JFrame implements Runnable {
private DefaultMutableTreeNode root;
private DefaultTreeModel treeModel;
private JTree tree;
public File fileRoot;
public Frame(){
super("FileBrowser");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(480, 320);
setLocation(50,50);
getContentPane().setLayout(null);
fileRoot = new File("C:/");
root = new DefaultMutableTreeNode(new FileNode(fileRoot));
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);
tree.setBounds(10, 39, 155, 177);
getContentPane().add(tree);
tree.setShowsRootHandles(true);
}
@Override
public void run() {
CreateChildNodes ccn = new CreateChildNodes(fileRoot, root);
new Thread(ccn).start();
}
}
Main 클래스 : 여기
코드의 작동, 내가getContentPane().setLayout(null);
주석과의 JTree가 전체 프레임을 채울 수 있도록하면
public class main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Frame());
}
}
로해야
감사합니다. 작동합니다! 일반적으로 레이아웃 관리자를 사용하는 것이 훨씬 낫다는 것을 알고 있습니다. 그러나 제 경우에는 특정 프로그램을 특정 화면에 표시하고 레이아웃이 핵심 기능이 아니므로 더 쉬운 방법을 선택했습니다. – Ch0mik18
그 대답을 확장하려면 ** 대부분주의를 기울일 가치가 있습니다. Java GUI는 다른 로케일에서 다른 PLAF를 사용하여 다른 OS, 화면 크기, 화면 해상도 등에서 작동해야합니다. 따라서, 픽셀 완벽한 레이아웃에 도움이되지 않습니다. 대신 레이아웃 관리자 또는 [조합] (http://stackoverflow.com/a/5630271/418556)과 [공백] 레이아웃 채우기 및 테두리 (http://stackoverflow.com/a/17874718/)를 사용하십시오. 418556). –
@ Ch0mik18이 경우 정확한 답을 수락하면 좋을 것입니다. –