首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自另一个类的NetBeans Matisse -访问jframe组件

来自另一个类的NetBeans Matisse -访问jframe组件
EN

Stack Overflow用户
提问于 2014-04-11 07:46:58
回答 2查看 2.2K关注 0票数 0

Netbeans的Matisse代码被阻止。我遇到的问题是,我必须在不同的包中从另一个类setBackground到一个JLabel,但是我不能这样做,因为我没有访问JLabel的权限,因为它的私有代码和阻塞代码。

这有什么解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-11 08:00:59

“Netbeans的Matisse代码被阻塞”

您可以像看到的here那样编辑它

“因为我没有访问JLabel的权限,因为它的私有代码和阻塞代码”

只需为另一个类中的标签编写一个getter方法

代码语言:javascript
复制
public class OtherClass .. {
    private JLabel jLabel1;

    public JLabel getLabel() {
        return jLabel1;
    }
}

import otherpackage.OtherClass;

public class MainFrame extends JFrame {
    private OtherClass otherClass;
    ...
    private void jButtonActionPerformed(ActionEvent e) {
         JLabel label = otherClass.getLabel();
         label.setBackground(...)
    }
}

“从另一个类访问jframe组件”

听起来你用的是多帧。请参阅The Use of Multiple JFrames, Good/Bad Practice?

更新

“我有一个用马蒂斯制作的主框架,但由于某些原因,当另一个类发生X验证时,我必须从另一个类中设置马蒂斯内部textField的背景。”

然后,您可以将Main框架的引用传递给另一个类,并在Main框架中有一个setter。类似于(我将提供一个访问接口)

代码语言:javascript
复制
public interface Gettable {
    public void setLabelBackground(Color color);
}

public class Main extends JFrame implements Gettable {
    private JLabel jLabel1;
    private OtherPanel otherPanel;

    public void initComponents() {
        otherPanel = new OtherPanel(Main.this); // see link above to edit this area
    }

    @Override
    public void setLabelBackground(Color color) {
        jLabel1.setBackground(color);
    }
}

public class OtherPanel extends JPanel {
    private Gettable gettable;

    public OtherPanel(Gettable gettable) {
        this.gettable = gettable;
    }

    private void jButtonActionPerformed(ActionEvent e) {
        gettable.setLabelBackground(Color.RED);
    }
}
票数 2
EN

Stack Overflow用户

发布于 2014-04-11 07:53:28

  • 用JLabel方法为类创建一个监听器,用于更改标签的背景
  • 在使用JLabel的类中实现它
  • 将其他类的侦听器(您希望从中更改BG )设置为JLabel类的侦听器
  • 在您想要的任何功能之后更改背景。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23006570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档