setDefaultButton做什么?

时间:2015-04-27 16:41:44

标签: jdialog

sendButton = new JButton("Send");
sendButton.addActionListener(this);
sendButton.setActionCommand("SEND");
getRootPane().setDefaultButton(sendButton);

setDefaultButton做什么?我尝试将sendButton添加为默认按钮。

1 个答案:

答案 0 :(得分:1)

来自Oracle API

  

默认按钮是当根窗格中出现UI定义的激活事件(通常是Enter键)时将激活的按钮,无论该按钮是否具有键盘焦点(除非根目录中有另一个组件)使用激活事件的窗格,例如JTextPane。

换句话说,它是默认激活的按钮,例如在“是否要删除此文件?[是] / [否]”对话框中,将[否]设置为默认按钮是明智的,以避免发生灾难性错误。

请注意,将其设置为默认值并不意味着添加到面板。它应该已经添加,否则将其设置为默认值是没有意义的:

  

要启用默认激活,激活发生时,该按钮必须是启用了根窗格的后代

也就是说,如果你没有将它添加到面板中,它甚至都不会显示出来,所以只有在此之后才能将其设置为默认值。

你应该有一个JPanel或类似的东西(不一定是rootPane),比如panel,在调用panel.add(sendButton)之前,应该通过getRootPane().setDefaultButton(sendButton)添加按钮。顺便说一下,这是严格可选的。