| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 628 人关注过本帖
标题:不明白?
只看楼主 加入收藏
天一
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2005-8-1
收藏
 问题点数:0 回复次数:5 
不明白?

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class JFrm extends JFrame{ public JFrm(){ Container c=this.getContentPane(); JButton btn=new JButton("Button"); //Left JPanel JPanel p=new JPanel(); p.setBackground(Color.pink); //Right JPanel PanelB pb=new PanelB(); pb.setBackground(Color.BLUE); p.add(btn,BorderLayout.CENTER); c.add(p,BorderLayout.WEST); c.add(pb); //Add Listener ButtonListener bl=new ButtonListener(pb); btn.addActionListener(bl); this.setSize(400,300); this.setVisible(true); }

public static void main(String[] args) { new JFrm(); } }

class PanelB extends JPanel{ public JTextField txt; public PanelB( ){ txt=new JTextField(20); this.add(txt); } } //class ButtonListener implements ActionListener{ PanelB p; public ButtonListener(PanelB p){ this.p=p; }//这个是用到的什么机制? public void actionPerformed(ActionEvent e){ p.txt.setText(e.getActionCommand()); } }

搜索更多相关主题的帖子: public border center import 
2005-08-15 10:44
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
//class ButtonListener implements ActionListener{
  PanelB p;
  public ButtonListener(PanelB p){
    this.p=p;
  }  //这个通过一个Constructor 将外部的变量与其自身的变量联系了起来,写得很巧妙,其实没有这个必要

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-15 18:19
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
程序改写如下, 我将这个ButtonListener class 改名为MyActionListener ,  并将他置于JFrm 中

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class PanelB extends JPanel
{
  public JTextField txt;
  public PanelB( )
  {
    txt=new JTextField(20);
    this.add(txt);
  }
  public void setText(String text)
  {
    txt.setText(text);
  }  
}
public class JFrm extends JFrame
{
  JButton btn = new JButton("Button");
  PanelB pb=new PanelB();
  public JFrm()
  {
    Container c=this.getContentPane();
   
    btn.addActionListener(new MyActionListener());

    //Left JPanel
    JPanel p=new JPanel();
    p.setBackground(Color.pink);
    p.add(btn,BorderLayout.CENTER);

    //Right JPanel
   
    pb.setBackground(Color.BLUE);
   
    c.add(p,BorderLayout.WEST);
    c.add(pb);

    this.setSize(400,300);
    this.setVisible(true);
  }
  class MyActionListener implements ActionListener
  {
    public void actionPerformed(ActionEvent ae)
    {
      pb.setText(ae.getActionCommand());
    }
  }  

  public static void main(String[] args)
  {
    new JFrm();
  }
}


  

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-15 18:32
qiuligao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-8-11
收藏
得分:0 
Container c=this.getContentPane();
高手们这句是什么意思?
2005-08-16 14:19
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
在这里 this  呢就是那个 JFrame Object,
然后其调用 getContentPane();  这样呢他就得到了那个Container
这个Container 呢用于装载那些 JFrame  的 Components

不知这样的解释,是不是可以让人理解?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-16 20:28
jnzsk
Rank: 1
等 级:新手上路
威 望:1
帖 子:403
专家分:0
注 册:2004-11-13
收藏
得分:0 
还是不明白

2005-09-22 17:15
快速回复:不明白?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016020 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved