注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山林客

简单不一定幸福,但幸福其实可以很简单。

 
 
 

日志

 
 
关于我

2004年毕业于中山大学,毕业后专注于网站开发和网络工程技术。先后取得SCWCD、CCNP认证,对Asp/Java有丰富的开发经验,对网络工程也有较深的研究。真诚欢迎大家多多指教、多多指点、多多指正,共同分享IT道路和人生道路上的喜怒哀乐。

a dataexchange dialog  

2006-10-08 22:40:00|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/*thi* **ample include one new mechansim, called enhancement
 *we want to popup a dialog which include a panel
 *however,we don't construct a dialog,but a panel ,and
 *in the panel class,we have a method to add the panel itself into the dialog
 * 
 */


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DataExchangeTest {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
DataExchangeFrame frame=new DataExchangeFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

}
class DataExchangeFrame extends JFrame{
private PasswordChooser panelDialog=null;
private JTextArea textArea;
public DataExchangeFrame(){
setTitle("Test");
setSize(400,400);

JMenuBar mbar=new JMenuBar();
setJMenuBar(mbar);

JMenu fileMenu=new JMenu("File");
mbar.add(fileMenu);

JMenuItem connectItem=new JMenuItem("Connect");
connectItem.addActionListener(new ConnectAction());
fileMenu.add(connectItem);

JMenuItem exitItem=new JMenuItem("Exit");
exitItem.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
}
);

fileMenu.add(exitItem);
textArea=new JTextArea();
add(new JScrollPane(textArea),BorderLayout.CENTER);



}


private class ConnectAction implements ActionListener{
public void actionPerformed(ActionEvent event){
if(panelDialog==null)
panelDialog=new PasswordChooser();

panelDialog.setUser(new User("yourname",null));
if(panelDialog.showDialog(DataExchangeFrame.this,"Connect")){
User u=panelDialog.getUser();
textArea.append(
"user name= " +u.getName()+", password= "+(new String(u.getPassword()))+"\n"
);
}

}
}
}


class PasswordChooser extends JPanel{//we extends the JPanel instead of JDialog
private JTextField username;
private JPasswordField password;
private JButton okButton;
private boolean ok;
private JDialog dialog;
public PasswordChooser(){
setLayout(new BorderLayout());

JPanel panel=new JPanel();
panel.setLayout(new GridLayout(2,2));
panel.add(new JLabel("User Name:"));
panel.add(username=new JTextField(""));
panel.add(new JLabel("Password:"));
panel.add(password=new JPasswordField(""));
add(panel,BorderLayout.CENTER);

okButton=new JButton("Ok");
okButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event)
{
ok=true;//if okButton clicked then set ok=true;
dialog.setVisible(false);
}
}
);

JButton cancelButton=new JButton("Cancel");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event){
dialog.setVisible(false);
}
}
);

JPanel buttonPanel=new JPanel();
buttonPanel.add(okButton);
buttonPanel.add(cancelButton);
add(buttonPanel,BorderLayout.SOUTH);
}



public void setUser(User u){
username.setText(u.getName());
}

public User getUser(){
return new User(username.getText(),password.getPassword());
}

public boolean showDialog(Component parent,String title){
ok=false;// by default ,ok=false
Frame owner=null;
if(parent instanceof Frame)
owner=(Frame)parent;
else
owner=(Frame)SwingUtilities.getAncestorOfClass(Frame.class,parent);

if(dialog==null||dialog.getOwner()!=owner)
{
dialog=new JDialog(owner,true);//the parent is the frame not the panel
dialog.add(this);//add the panel to the dialog
dialog.getRootPane().setDefaultButton(okButton);//set the default button
dialog.pack();
}

dialog.setTitle(title);
dialog.setVisible(true);
return ok;
}
}

class User{
private String name;
private char[] password;
public User(String aName,char[] aPassword){
name=aName;
password=aPassword;
}
public String getName()
{return name;}
public char[] getPassword(){
return password;
}
public void setName(String aName){
name=aName;
}
public void setPassword(char[] aPassword){
password=aPassword;
}
}
  评论这张
 
阅读(217)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018