JLabel

sanld 2013-11-23 04:35:16
写了个小程序,给按钮添加点击事件后,需要修改JLabel的值,但是我不知道怎么获取到需要修改的JLabel,求大侠帮助。谢谢了,在线等。
...全文
146 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
袁慎建 2013-11-23
  • 打赏
  • 举报
回复
你的JButton是成员变量吗,
引用 3 楼 sanld 的回复:
[quote=引用 1 楼 ysjian_pingcx 的回复:] 分享个思路,在按钮点击事件中拿到要修改的JLabel对象,然后setText,这样不行吗,如果JLabel是不是成员变量,需要用final修饰
关键是我的JLabel是在一个方法里new的,然后加入到了JPanel里,没有在全局里声明,下面是创建Jlabel的代码:private JPanel getContentJPanel(){ JPanel jpanel = new JPanel(); jpanel.setName("contentJPanel"); jpanel.setBackground(getBackgroundColor(CONTENT_BACKGROUND_COLOR)); for(int i = 0; i < 7 ;i++){ JLabel jlabel = new JLabel(); jlabel.setName("ballNum" + (i + 1)); jlabel.setHorizontalAlignment(SwingConstants.CENTER); jlabel.setBackground(getBackgroundColor(BALL_BACKGROUND_COLOR)); jlabel.setOpaque(Boolean.TRUE); jlabel.setPreferredSize(new Dimension(30,20)); jlabel.setForeground(Color.BLUE); if(i == 6) jlabel.setForeground(Color.RED); jlabel.setText("0"); jpanel.add(jlabel); } return jpanel; } 然后把返回的JPanel加入JFrame this.add(getContentJPanel(),BorderLayout.CENTER); 这句是写在构造方法里的。[/quote] 有一个很好地的解决方案,就是将这个JLabel声明为成员变量,这样在类内部都可以访问,如果需要在类外部访问,提供访问器接口就可以了,。不这样做的话,你的JLabel是getJPanel方法的局部变量,作用域限制在这个方法里,出了这个方法就无法访问,所以建议使用成员变量。
sanld 2013-11-23
  • 打赏
  • 举报
回复
引用 1 楼 ysjian_pingcx 的回复:
分享个思路,在按钮点击事件中拿到要修改的JLabel对象,然后setText,这样不行吗,如果JLabel是不是成员变量,需要用final修饰
关键是我的JLabel是在一个方法里new的,然后加入到了JPanel里,没有在全局里声明,下面是创建Jlabel的代码:private JPanel getContentJPanel(){ JPanel jpanel = new JPanel(); jpanel.setName("contentJPanel"); jpanel.setBackground(getBackgroundColor(CONTENT_BACKGROUND_COLOR)); for(int i = 0; i < 7 ;i++){ JLabel jlabel = new JLabel(); jlabel.setName("ballNum" + (i + 1)); jlabel.setHorizontalAlignment(SwingConstants.CENTER); jlabel.setBackground(getBackgroundColor(BALL_BACKGROUND_COLOR)); jlabel.setOpaque(Boolean.TRUE); jlabel.setPreferredSize(new Dimension(30,20)); jlabel.setForeground(Color.BLUE); if(i == 6) jlabel.setForeground(Color.RED); jlabel.setText("0"); jpanel.add(jlabel); } return jpanel; } 然后把返回的JPanel加入JFrame this.add(getContentJPanel(),BorderLayout.CENTER); 这句是写在构造方法里的。
gloomyfish 2013-11-23
  • 打赏
  • 举报
回复
private JLabel txtLabel;
txtLabel = new Label("");//构造函数中初始化
txtLabel.setText("xxxx");//在修改处使用
袁慎建 2013-11-23
  • 打赏
  • 举报
回复
分享个思路,在按钮点击事件中拿到要修改的JLabel对象,然后setText,这样不行吗,如果JLabel是不是成员变量,需要用final修饰

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧