如何设置一个jButton按钮的快捷键?

faintyzxm 2002-06-03 10:01:53
比如我想用“Enter”回车键来确定“确定”按钮,
“e”键来确定“取消”按钮
请问该如何处理?最好给出一些代码……
...全文
836 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
faintyzxm 2002-06-04
  • 打赏
  • 举报
回复
to all
算了
我先结贴
再开一个窗口问!!
chinaredflag 2002-06-03
  • 打赏
  • 举报
回复
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



public class AuthenDlg extends JDialog implements ActionListener
{
JPanel panel1 = new JPanel();
JLabel jLabel1 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JPasswordField jPasswordField1 = new JPasswordField(10);

public AuthenDlg(JFrame frame, String title, boolean modal) {
super(frame, title, modal);
try {
jbInit();
setSize(400,170);
setLocation(300,200);
}
catch(Exception ex) {
ex.printStackTrace();
}
}




public AuthenDlg() {
this(null, "key_test", false);
}
void jbInit() throws Exception {
panel1.setLayout(null);

usrName = null;
jLabel1.setText("PASSWORD");
jLabel1.setBounds(new Rectangle(73, 40,70,20));
jButton1.setText("OK");
jButton1.setBounds(new Rectangle(102, 91,85,25));
jButton1.addActionListener(this);
jButton1.addKeyListener(new java.awt.event.KeyListener() {
public void keyPressed(KeyEvent e)
{
key_press_event(e);
}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

}
);
jButton2.setText("CANCEL");
jButton2.setBounds(new Rectangle(199, 91,85,25));
jButton2.addActionListener(this);
jButton2.addKeyListener(new java.awt.event.KeyListener() {
public void keyPressed(KeyEvent e)
{
key_press_event(e);
}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

}
);
getContentPane().add(panel1);
jPasswordField1.setBounds(new Rectangle(171, 40,140,20));
jPasswordField1.addKeyListener(new java.awt.event.KeyListener() {
public void keyPressed(KeyEvent e)
{
key_press_event(e);
}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

}
);
panel1.add(jButton1, null);
panel1.add(jButton2, null);
panel1.add(jLabel1, null);
panel1.add(jPasswordField1,null);


this.addWindowListener(new MyWindowListener());
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
}

public static void main(String args[]){
AuthenDlg lock = new AuthenDlg();
lock.show();
}


public void actionPerformed(ActionEvent e)
{
if(e.getSource() == jButton1)
{
jButton1_actionPerformed();
}

if(e.getSource() == jButton2)
{
cancelAct();
}
}

void jButton1_actionPerformed()
{
System.out.println("this is ok");
}

void key_press_event(KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_ENTER )
jButton1_actionPerformed();

if (e.getKeyCode()==KeyEvent.VK_E)
cancelAct();
}

void cancelAct()
{
System.out.println("this is cancel");
this.hide();
}


class MyWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
cancelAct();
}

}

}
chinaredflag 2002-06-03
  • 打赏
  • 举报
回复
你要想用Enter直接响应,最好的办法是将每个组件都加键盘的响应事件,然后,执行你要的方法
例如:
class Key_Listener implements KeyListener
{
public void keyPressed(KeyEvent e)
{
key_press_event(e);
}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

void key_press_event(KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_ENTER )
System.out.println("enter");

if (e.getKeyCode()==KeyEvent.VK_E)
System.out.println("e");
}

}


在你的程序中,每个组件都加响应事件
Key_Listener keyL = new Key_Listener();

........
jButton1.addKeyListener(keyL) ;
jButton2.addKeyListener(keyL) ;
........
lianyunzxp 2002-06-03
  • 打赏
  • 举报
回复
首先引入包
import javax.swing.event.*;
然后定义一个
KeyStroke stroke1 = KeyStroke.getKeyStroke (KeyEvent.VK_ENTER,ActionEvent.CTRL_MASK,true);//创建一个KeyStroke类
最后一个参数的意思是是否在Keyrelease时触发此事件
JButton jButton1 = new JButton();

jButton1.registerKeyboardAction(new ActionListener(){
//要执行的方法
public void actionPerformed(ActionEvent e){
System.out.println("OK");
}
},stroke1,JComponent.WHEN_IN_FOCUSED_WINDOW);
}
registerKeyboardAction方法的参数意思是这样的
1.ActionListener对象,可以定义你要执行的方法
2.KeyStroke 对象,定义触发事件的条件
3.何时按Ctrl+Enter时发生此事件,比如
JComponent.WHEN_IN_FOCUSED_WINDOW
JComponent.WHEN_FOCUSED等
newman0708 2002-06-03
  • 打赏
  • 举报
回复
1。jButton.setMnemonic(KeyEvent.VK_ENTER);这是一种较简单的,要按alt+enter。

alphazhao 2002-06-03
  • 打赏
  • 举报
回复
jButton.setMnemonic(KeyEvent.VK_ENTER);是肯定可以的,不过就是“Alt+Enter”。其它的我也不知道啊,是不是有类似的KeyEvent.?可以选择成只要回车就可以?
shihb 2002-06-03
  • 打赏
  • 举报
回复
to drinkant:
“监视该监视的那些东东”那你说该监听什么?
“增加/去除jbutton的键盘事件”对呀!所以在你的anAction就要抓住这个事件,并作相应的处理喽!
drinkant 2002-06-03
  • 打赏
  • 举报
回复
感觉shinb办法不行
你这只是增加/去除jbutton的键盘事件而已
事实上,默认的就是有回车事件的,只不过这位老兄要做的是在发生VK_ENTER和VK_E的时候处理他自己的事情
drinkant 2002-06-03
  • 打赏
  • 举报
回复
当然是监视该监视的那些东东了, 你还想通杀丫, 喀喀. . ..
drinkant 2002-06-03
  • 打赏
  • 举报
回复
当然是监视该监视的那些东东了, 你还想通杀丫, 喀喀. . ..
shihb 2002-06-03
  • 打赏
  • 举报
回复
to drinkant(喝酒的蚂蚁):
天哪!如果是这样的话,那岂不是我在其他想回车的地方都不能回撤了?呵呵!

你可以试试registerKeyboardAction,下面是它的api文档。
public void registerKeyboardAction(ActionListener anAction,
KeyStroke aKeyStroke,
int aCondition)This method is now obsolete, please use a combination of getActionMap() and getInputMap() for similiar behavior.
faintyzxm 2002-06-03
  • 打赏
  • 举报
回复
能否给点代码?
另外我已经有个按钮事件了……
drinkant 2002-06-03
  • 打赏
  • 举报
回复
监视按键事件咯. . .当有回车按下的时候,发送一个action事件给这个按钮
drinkant 2002-06-03
  • 打赏
  • 举报
回复
监视按键事件咯. . .当有回车按下的时候,发送一个action事件给这个按钮
faintyzxm 2002-06-03
  • 打赏
  • 举报
回复
问题是,需要的是用“ENTER”键来做快捷键,无论是有焦点……
drinkant 2002-06-03
  • 打赏
  • 举报
回复
当button有焦点时, 按空格将激发action事件
faintyzxm 2002-06-03
  • 打赏
  • 举报
回复
to alphazhao(绿色咖啡):你的可以设置快捷键,但是快捷键不是"ENTER",而是"Alt+ENTER"键,能否改进一下?
to chinaredflag(chinaredflag):你是我试过一下,但是不行,难道是我截取错了?能不能只给出我需要的?精简一点

btw:我再加点分
alphazhao 2002-06-03
  • 打赏
  • 举报
回复
jButton.setMnemonic(KeyEvent.VK_ENTER);试试看
计算器 一、 背景描述 该计算器模仿Windows自带的计算器,只实现标准型计算器功能。 在完成Swing的学习后,练习使用Swing包中JFrame、JButton、JLabel、JTextField、JMenu、JMenuItem等组件完成图形界面绘制。 二、 实现要求 前期能够独立思考并完成计算器的逻辑代码。 三、 实现技术 a) 熟练使用JButton、JTextField、JLabel等Swing包中组件。 b) 熟练使用BorderLayout、FlowLayout、BoxLayout、GridLayout等布局。 c) 能够根据需要覆盖paint函数,定制自己需要的组件。 四、 类图 a) 类图 b) 类图说明 类名称 Calculator 类描述 计算器界面类。 包描述 main 函数描述 Calculator() 计算器界面类缺省构造函数。 private void initMenu() 初始化菜单添加。 private void initButton() 初始化按钮按钮的初始化、部署、事件添加等。 private void initAdd() 初始化各个容器的添加。 public void actionPerformed(ActionEvent e) 处理按钮事件。1.复制事件2.粘贴事件,此处应用正则表达式(详细请参考类 java.util.regex.Pattern)解析粘贴板中的内容,仅得到内容中最后的数字和小数点。3.关于事件 private boolean isContain(String str,String ch) 检测某字符串中是否包含某个字符串。 private void showResult(String result) 设置计算的得到的结果。 private void clearAll(String result) 清空结果。 private void countResult(double value2) 计算结果并显示结果。 内部类 private class ButtonListener extends AbstractAction 按钮事件。包括+、-、*、/、1/x、数字等按钮事件。 此类继承AbstractAction 类名称 CalculateButton 类描述 定制自己的按钮类。练习自己定制按钮。比如定制按钮的高度、宽度、文字等。 包描述 main 函数描述 public CalculateButton(Action listener,String text,int key,boolean isctrl) 构造一个具有缺省事件、指定文本、指定快捷键JButton。 public CalculateButton(Action listener,String text,int key,boolean isctrl,Color color) 构造一个具有缺省事件、指定文本、指定快捷键、指定文本颜色的JButton。 public CalculateButton(Action listener,String text,int key,boolean isctrl,Color color,int width,int height) 构造一个具有缺省事件、指定文本、指定快捷键、指定文本颜色的JButton。 protected void paintBorder(Graphics g) 绘制边界。 c) 效果图 五、 技术技巧提问 a) 思考用户如果多次连续按如+、-、*、/等键时,应该怎么处理?请仔细考虑好该逻辑。 b) 练习使用剪贴板的功能,实现复制、粘贴功能。考虑当粘贴板中数据值带有多个小数点时如何处理然后显示到文字框上。
public class ChatClient extends JFrame implements ActionListener{ String ip = "127.0.0.1";//连接到服务端的ip地址 int port = 8888;//连接到服务端的端口号 String userName = "匆匆过客";//用户名 int type = 0;//0表示未连接,1表示已连接 Image icon;//程序图标 JComboBox combobox;//选择发送消息的接受者 JTextArea messageShow;//客户端的信息显示 JScrollPane messageScrollPane;//信息显示的滚动条 JLabel express,sendToLabel,messageLabel ; JTextField clientMessage;//客户端消息的发送 JCheckBox checkbox;//悄悄话 JComboBox actionlist;//表情选择 JButton clientMessageButton;//发送消息 JTextField showStatus;//显示用户连接状态 Socket socket; ObjectOutputStream output;//网络套接字输出流 ObjectInputStream input;//网络套接字输入流 ClientReceive recvThread; //建立菜单栏 JMenuBar jMenuBar = new JMenuBar(); //建立菜单组 JMenu operateMenu = new JMenu ("操作(O)"); //建立菜单项 JMenuItem loginItem = new JMenuItem ("用户登录(I)"); JMenuItem logoffItem = new JMenuItem ("用户注销(L)"); JMenuItem exitItem=new JMenuItem ("退出(X)"); JMenu conMenu=new JMenu ("设置(C)"); JMenuItem userItem=new JMenuItem ("用户设置(U)"); JMenuItem connectItem=new JMenuItem ("连接设置(C)"); JMenu helpMenu=new JMenu ("帮助(H)"); JMenuItem helpItem=new JMenuItem ("帮助(H)"); //建立工具栏 JToolBar toolBar = new JToolBar(); //建立工具栏中的按钮组件 JButton loginButton;//用户登录 JButton logoffButton;//用户注销 JButton userButton;//用户信息的设置 JButton connectButton;//连接设置 JButton exitButton;//退出按钮 //框架的大小 Dimension faceSize = new Dimension(400, 600); JPanel downPanel ; GridBagLayout girdBag; GridBagConstraints girdBagCon; public ChatClient(){ init();//初始化程序 //添加框架的关闭事件处理 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); //设置框架的大小 this.setSize(faceSize); //设置运行时窗口的位置 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2, (int) (screenSize.height - faceSize.getHeight()) / 2); this.setResizable(false); this.setTitle("聊天室客户端"); //设置标题 //程序图标 icon = getImage("icon.gif"); this.setIconImage(icon); //设置程序图标 show(); //为操作菜单栏设置热键'V' operateMenu.setMnemonic('O'); //为用户登录设置快捷键为ctrl+i loginItem.setMnemonic ('I'); loginItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_I,InputEvent.CTRL_MASK)); //为用户注销快捷键为ctrl+l logoffItem.setMnemonic ('L'); logoffItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_L,InputEvent.CTRL_MASK)); //为退出快捷键为ctrl+x exitItem.setMnemonic ('X'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_X,InputEvent.CTRL_MASK)); //为设置菜单栏设置热键'C' conMenu.setMnemonic('C'); //为用户设置设置快捷键为ctrl+u userItem.setMnemonic ('U'); userItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); //为连接设置设置快捷键为ctrl+c connectItem.setMnemonic ('C'); connectItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); //为帮助菜单栏设置热键'H' helpMenu.setMnemonic('H'); //为帮助设置快捷键为ctrl+p helpItem.setMnemonic ('H'); helpItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_H,InputEvent.CTRL_MASK)); } /** * 程序初始化函数 */ public void init(){ Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); //添加菜单栏 operateMenu.add (loginItem); operateMenu.add (logoffItem); operateMenu.add (exitItem); jMenuBar.add (operateMenu); conMenu.add (userItem); conMenu.add (connectItem); jMenuBar.add (conMenu); helpMenu.add (helpItem); jMenuBar.add (helpMenu); setJMenuBar (jMenuBar); //初始化按钮 loginButton = new JButton("登录"); logoffButton = new JButton("注销"); userButton = new JButton("用户设置" ); connectButton = new JButton("连接设置" ); exitButton = new JButton("退出" ); //当鼠标放上显示信息 loginButton.setToolTipText("连接到指定的服务器"); logoffButton.setToolTipText("与服务器断开连接"); userButton.setToolTipText("设置用户信息"); connectButton.setToolTipText("设置所要连接到的服务器信息"); //将按钮添加到工具栏 toolBar.add(userButton); toolBar.add(connectButton); toolBar.addSeparator();//添加分隔栏 toolBar.add(loginButton); toolBar.add(logoffButton); toolBar.addSeparator();//添加分隔栏 toolBar.add(exitButton); contentPane.add(toolBar,BorderLayout.NORTH); checkbox = new JCheckBox("悄悄话"); checkbox.setSelected(false); actionlist = new JComboBox(); actionlist.addItem("微笑地"); actionlist.addItem("高兴地"); actionlist.addItem("轻轻地"); actionlist.addItem("生气地"); actionlist.addItem("小心地"); actionlist.addItem("静静地"); actionlist.setSelectedIndex(0); //初始时 loginButton.setEnabled(true); logoffButton.setEnabled(false); //为菜单栏添加事件监听 loginItem.addActionListener(this); logoffItem.addActionListener(this); exitItem.addActionListener(this); userItem.addActionListener(this); connectItem.addActionListener(this); helpItem.addActionListener(this); //添加按钮的事件侦听 loginButton.addActionListener(this); logoffButton.addActionListener(this); userButton.addActionListener(this); connectButton.addActionListener(this); exitButton.addActionListener(this); combobox = new JComboBox(); combobox.insertItemAt("所有人",0); combobox.setSelectedIndex(0); messageShow = new JTextArea(); messageShow.setEditable(false); //添加滚动条 messageScrollPane = new JScrollPane(messageShow, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); messageScrollPane.setPreferredSize(new Dimension(400,400)); messageScrollPane.revalidate(); clientMessage = new JTextField(23); clientMessage.setEnabled(false); clientMessageButton = new JButton(); clientMessageButton.setText("发送"); //添加系统消息的事件侦听 clientMessage.addActionListener(this); clientMessageButton.addActionListener(this); sendToLabel = new JLabel("发送至:"); express = new JLabel(" 表情: "); messageLabel = new JLabel("发送消息:"); downPanel = new JPanel(); girdBag = new GridBagLayout(); downPanel.setLayout(girdBag); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 0; girdBagCon.gridwidth = 5; girdBagCon.gridheight = 2; girdBagCon.ipadx = 5; girdBagCon.ipady = 5; JLabel none = new JLabel(" "); girdBag.setConstraints(none,girdBagCon); downPanel.add(none); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 2; girdBagCon.insets = new Insets(1,0,0,0); //girdBagCon.ipadx = 5; //girdBagCon.ipady = 5; girdBag.setConstraints(sendToLabel,girdBagCon); downPanel.add(sendToLabel); girdBagCon = new GridBagConstraints(); girdBagCon.gridx =1; girdBagCon.gridy = 2; girdBagCon.anchor = GridBagConstraints.LINE_START; girdBag.setConstraints(combobox,girdBagCon); downPanel.add(combobox); girdBagCon = new GridBagConstraints(); girdBagCon.gridx =2; girdBagCon.gridy = 2; girdBagCon.anchor = GridBagConstraints.LINE_END; girdBag.setConstraints(express,girdBagCon); downPanel.add(express); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 3; girdBagCon.gridy = 2; girdBagCon.anchor = GridBagConstraints.LINE_START; //girdBagCon.insets = new Insets(1,0,0,0); //girdBagCon.ipadx = 5; //girdBagCon.ipady = 5; girdBag.setConstraints(actionlist,girdBagCon); downPanel.add(actionlist); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 4; girdBagCon.gridy = 2; girdBagCon.insets = new Insets(1,0,0,0); //girdBagCon.ipadx = 5; //girdBagCon.ipady = 5; girdBag.setConstraints(checkbox,girdBagCon); downPanel.add(checkbox); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 0; girdBagCon.gridy = 3; girdBag.setConstraints(messageLabel,girdBagCon); downPanel.add(messageLabel); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 1; girdBagCon.gridy = 3; girdBagCon.gridwidth = 3; girdBagCon.gridheight = 1; girdBag.setConstraints(clientMessage,girdBagCon); downPanel.add(clientMessage); girdBagCon = new GridBagConstraints(); girdBagCon.gridx = 4; girdBagCon.gridy = 3; girdBag.setConstraints(clientMessageButton,girdBagCon); downPanel.add(clientMessageButton);
Socket聊天室源程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.io.*; import java.net.*; /* * 聊天客户端的主框架类 */ public class ChatClient extends JFrame implements ActionListener{ String ip = "127.0.0.1";//连接到服务端的ip地址 int port = 8888;//连接到服务端的端口号 String userName = "匆匆过客";//用户名 int type = 0;//0表示未连接,1表示已连接 Image icon;//程序图标 JComboBox combobox;//选择发送消息的接受者 JTextArea messageShow;//客户端的信息显示 JScrollPane messageScrollPane;//信息显示的滚动条 JLabel express,sendToLabel,messageLabel ; JTextField clientMessage;//客户端消息的发送 JCheckBox checkbox;//悄悄话 JComboBox actionlist;//表情选择 JButton clientMessageButton;//发送消息 JTextField showStatus;//显示用户连接状态 Socket socket; ObjectOutputStream output;//网络套接字输出流 ObjectInputStream input;//网络套接字输入流 ClientReceive recvThread; //建立菜单栏 JMenuBar jMenuBar = new JMenuBar(); //建立菜单组 JMenu operateMenu = new JMenu ("操作(O)"); //建立菜单项 JMenuItem loginItem = new JMenuItem ("用户登录(I)"); JMenuItem logoffItem = new JMenuItem ("用户注销(L)"); JMenuItem exitItem=new JMenuItem ("退出(X)"); JMenu conMenu=new JMenu ("设置(C)"); JMenuItem userItem=new JMenuItem ("用户设置(U)"); JMenuItem connectItem=new JMenuItem ("连接设置(C)"); JMenu helpMenu=new JMenu ("帮助(H)"); JMenuItem helpItem=new JMenuItem ("帮助(H)"); //建立工具栏 JToolBar toolBar = new JToolBar(); //建立工具栏中的按钮组件 JButton loginButton;//用户登录 JButton logoffButton;//用户注销 JButton userButton;//用户信息的设置 JButton connectButton;//连接设置 JButton exitButton;//退出按钮 //框架的大小 Dimension faceSize = new Dimension(400, 600); JPanel downPanel ; GridBagLayout girdBag; GridBagConstraints girdBagCon; public ChatClient(){ init();//初始化程序 //添加框架的关闭事件处理 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); //设置框架的大小 this.setSize(faceSize); //设置运行时窗口的位置 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2, (int) (screenSize.height - faceSi
public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ //建立工具栏用来显示地址栏 JToolBar bar=new JToolBar (); //建立网页显示界面 JTextField jurl = new JTextField (60); JEditorPane jEditorPane1 = new JEditorPane (); JScrollPane scrollPane = new JScrollPane (jEditorPane1); JFileChooser chooser=new JFileChooser (); JFileChooser chooser1=new JFileChooser (); String htmlSource; JWindow window = new JWindow (WebBrowser.this); JButton button2=new JButton ("窗口还原"); Toolkit toolkit = Toolkit.getDefaultToolkit(); //建立菜单栏 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜单组 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜单项 JMenuItem saveAsItem = new JMenuItem ("另存为(A)..."); JMenuItem exitItem=new JMenuItem ("退出(I)"); JMenu editMenu=new JMenu ("编辑(E)"); JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前进"); JMenu viewMenu=new JMenu ("视图(V)"); JMenuItem fullscreenItem=new JMenuItem ("全屏(U)"); JMenuItem sourceItem=new JMenuItem ("查看源码(C)"); JMenuItem reloadItem=new JMenuItem ("刷新(R)"); //建立工具栏 JToolBar toolBar = new JToolBar(); //建立工具栏中的按钮组件 JButton picSave = new JButton("另存为"); JButton picBack = new JButton("后退"); JButton picForward = new JButton("前进"); JButton picView = new JButton("查看源代码"); JButton picExit = new JButton("退出"); JLabel label=new JLabel ("地址"); JButton button=new JButton ("转向"); Box adress=Box.createHorizontalBox (); //ArrayList对象,用来存放历史地址 private ArrayList history=new ArrayList(); //整型变量,表示历史地址的访问顺序 private int historyIndex; /** **构造函数 **初始化图形用户界面 */ public WebBrowser(){ setTitle ("网页浏览器"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //为jEditorPane1添加事件侦听 jEditorPane1.addHyperlinkListener (this); //为组件fileMenu设置热键‘F’ fileMenu.setMnemonic('F'); saveAsItem.setMnemonic ('S'); //为“另存为”组件设置快捷键为ctrl+s saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); exitItem.setMnemonic('Q'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK)); //将菜单项saveAsItem加入到菜单组fileMenu中 fileMenu.add (saveAsItem); //在菜单项中添加隔离 fileMenu.addSeparator (); fileMenu.add (exitItem); backItem.setMnemonic ('B'); backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK)); forwardItem.setMnemonic('D'); forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK)); editMenu.setMnemonic('E'); editMenu.add (backItem); editMenu.add (forwardItem); viewMenu.setMnemonic('V'); fullscreenItem.setMnemonic('U'); fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); sourceItem.setMnemonic('C'); sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); reloadItem.setMnemonic('R'); reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK)); Container contentPane=getContentPane (); //设置大小 scrollPane.setPreferredSize(new Dimension(100,500)); contentPane.add (scrollPane, BorderLayout.SOUTH); //在工具栏中添加按钮组件 toolBar.add(picSave); toolBar.addSeparator(); toolBar.add(picBack); toolBar.add(picForward); toolBar.addSeparator(); toolBar.add(picView); toolBar.addSeparator(); toolBar.add(picExit); contentPane.add (bar,BorderLayout.CENTER); contentPane.add(toolBar,BorderLayout.NORTH); viewMenu.add (fullscreenItem); viewMenu.add (sourceItem); viewMenu.addSeparator (); viewMenu.add (reloadItem); jMenuBar1.add (fileMenu); jMenuBar1.add (editMenu); jMenuBar1.add (viewMenu); setJMenuBar (jMenuBar1); adress.add (label); adress.add (jurl); adress.add (button); bar.add (adress); //为组件添加事件监听 saveAsItem.addActionListener(this); picSave.addActionListener(this); exitItem.addActionListener(this); picExit.addActionListener(this); backItem.addActionListener(this); picBack.addActionListener(this); forwardItem.addActionListener(this); picForward.addActionListener(this); fullscreenItem.addActionListener(this); sourceItem.addActionListener(this); picView.addActionListener(this); reloadItem.addActionListener(this); button.addActionListener(this); jurl.addActionListener(this); }

62,614

社区成员

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

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