我有一个Swing-GUI(使用Netbeans GUI-Builder构建),有一个标签,我使用箭头键移动。 按空格键调用另一个类。如何从此课程中访问标签,例如得到这个位置?
提前感谢您的帮助! 示例 - 第二类的代码:
public class Xy extends Thread {
private Window s; // this is the jFrame-form
public Xy(Window s) {
this.s = s;
s.setBackground(Color.yellow); // works
}
public void run() {
// here i want to use the position of a label which is located on the form s
}
答案 0 :(得分:2)
如果您不是绝对需要,最好的选择是不公开JLabel。如果您希望其他类更改标签的位置,则为包含标签的类提供允许外部类执行此操作的方法。如果其他类需要查询标签的位置,则给出包含类的公共getter方法,以便外部代码可以获取位置数据(而不是标签本身)。这样,如果您以后决定不想使用JLabel,而是希望完全显示不同的组件,则不会破坏其他类中的代码。
或者更好的是,将GUI基于MVC模型,然后更改逻辑标签在模型中的位置。视图可以通过观察者模式监听模型中的更改,然后视图本身可以更改标签的位置。
他们所有这一切的关键是随时随地使用loose coupling。
答案 1 :(得分:1)
有两种方法可以做到这一点:
第一个可能被认为是更好的编程实践。