Guten Abend
Ich habe eine kleine GUI programmiert die einen JTree beinhaltet (in Form einer Klasse TreePanel) und ein JTextField.
Bei Anklicken eines Elementes im Tree soll der JTextField mit dem Namen des angeklickten Elementes angepasst werden.
Um das JTextField aus der Klasse TreePanel heraus updaten zu können, habe ich in der Klasse UF eine public static Methode gemacht.
Ist das der korrekte Weg oder wie mache ich das besser ?
Danke und Gruss
Ich habe eine kleine GUI programmiert die einen JTree beinhaltet (in Form einer Klasse TreePanel) und ein JTextField.
Bei Anklicken eines Elementes im Tree soll der JTextField mit dem Namen des angeklickten Elementes angepasst werden.
Um das JTextField aus der Klasse TreePanel heraus updaten zu können, habe ich in der Klasse UF eine public static Methode gemacht.
Ist das der korrekte Weg oder wie mache ich das besser ?
Danke und Gruss
Java:
public class UF extends JFrame {
private Container contentPane;
public static JTextField textFieldHersteller = new JTextField();
public UF() {
setSize(800, 600);
setLocationRelativeTo(null);
contentPane = getContentPane();
contentPane.setLayout(null);
contentPane.add(new TreePanel(50,50,300,400));
textFieldHersteller.setBounds(500, 80,200,30);
contentPane.add(textFieldHersteller);
}
public static void updateTextField(String hersteller) {
textFieldHersteller.setText(hersteller);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UF frame = new UF();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
Java:
public class TreePanel extends JPanel implements TreeSelectionListener {
public JTree tree;
public TreePanel(int x, int y, int width, int height) {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
root.add(new DefaultMutableTreeNode("Child 1"));
root.add(new DefaultMutableTreeNode("Child 2"));
tree = new JTree(root);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
this.setBounds(x,y,width, height);
this.setLayout(null);
JScrollPane scrollPane = new JScrollPane(tree);
scrollPane.setSize(new Dimension(width, height));
add(scrollPane);
}
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (node != null) {
Object nodeInfo = node.getUserObject();
if (node.isLeaf()) {
UF.updateTextField(nodeInfo.toString());
}
}
}
}