2009年
6
月
5
日
10:00:18
1.
setActionCommand
的作用。
设置此组件激发的操作事件的命令名称。
如:
JButton btnShow = new JButton();
btnShow.setActionCommand("show");
当这个按钮被点击的时候,
你就可以用
ActionEvent 的
getActionCommand().equals("show")
去比较触发事件的是不是这个按钮
通俗的意思就是:用setActionCommand()去设置按钮操作的值,当在ActionEvent中用getActionCommand去判断是谁产生了事件。
2.对MenuItem 中快捷键的设置
对应的代码为:
mi_application_log
.setAccelerator(javax.swing.KeyStroke.
getKeyStroke
(java.awt.event.KeyEvent.
VK_L
,java.awt.Event.
CTRL_MASK
| java.awt.Event.
ALT_MASK
));
2.
mi_wizard.setMnemonic( (int) 'W');
设置。
如:连接向导(W)
…
(MenuItem)中的
’
(W)
’
.在
Properties
中的
mnemonic
中设置。
2009年
6
月
8
日
11:03:14
1、
GridBagLayout中参数的意义。
构造方法前的代码都不是很特殊,都是一些相当标准的import
和变量定义。但是进入构造方法后,事情就变得有趣了。
Container contentPane = getContentPane();
GridBagLayout gridbag =GridBagLayout();
contentPane.setLayout(gridbag);
我们以GridBagWindow
的内容面板作为开始来创建一个
GridBagLayout
对象,准确地说,这个方法与过去我们所创建
GridLayout
对象和
BorderLayout
对象的方法是一样的。那么,现在我们就开始来设置
GridBagLayout
对象使它作为内容面板的布局。
GridBagConstraints c = new GridBagConstraints();
然后我要提到这整个进程中的一个独特的对象,那就是GridBagConstraints
。这个对象在
GridBagLayout
中控制所有被安置在其中组件的约束。为了把一个组件增加到你的
GridBagLayout
中去,你首先必须将它与一个
GridBagConstraints
对象建立连接。
GridBagConstraints
可以从
11
个方面来进行控制和操纵,也可以给你提供一些帮助。这些内容是:
Gridx——组件的横向坐标
Girdy——组件的纵向坐标
Gridwidth——组件的横向宽度,也就是指组件占用的列数,这与
HTML
的
colspan
类似
Gridheight
——组件的纵向长度,也就是指组件占用的行数,这与
HTML
的
rowspan
类似
Weightx
——指行的权重,告诉布局管理器如何分配额外的水平空间。
当设置为1.0
时,它将剩余的部分全部占满。
Weighty——指列的权重,告诉布局管理器如何分配额外的垂直空间
Anchor——告诉布局管理器组件在表格空间中的位置
Fill——如果显示区域比组件的区域大的时候,可以用来控制组件的行为。控制组件是垂直填充,还是水平填充,或者两个方向一起填充
Insets——指组件与表格空间四周边缘的空白区域的大小
Ipadx—— 组件间的横向间距
,
组件的宽度就是这个组件的最小宽度加上
ipadx
值
ipady—— 组件间的纵向间距
,
组件的高度就是这个组件的最小高度加上
ipady
值
3.
TextArea的一些设置。
F
acusable :此文本不能获得焦点。
(
也就是不能对它进行修改
)
。
E
ditable: 此文本能获得焦点,但是不能更改。
lineWrap:文字在一行不够时,会跳到第二行。
4.
设置文本的下划线。
代码如下:
JLabel label = new JLabel(
“
hello
”
);
L
abel.setFont(new Font(
“”
,Font.ITALIC,12));
L
abel.setForeground(Color.BULE);
Border border1 = BorderFactory.createMatteBorder(0,0,1,0,Color.BULE);
L
abel.setBorder(border1);
5.
设置TextArea
的背景颜色
(setBackground).
在Properties
中的
background
的弹出选项中选择
Swing Colors
中选择
Button.background.
它的颜色就跟
Button
的一样了。不管是否跨平台,它的颜色都跟
button
的一样,这样就有很好的灵活性。
2009年
6
月
9
日
9:37:34
1.
JSplitPane
参数的设置(
来源:
Exporer/UI.java)
JSplitPane pane =
new
JSplitPane(JSplitPane.
HORIZONTAL_SPLIT
, treeView,tableView);
pane.setDividerLocation(200);
pane.setDividerSize(4);
pane.setDoubleBuffered(
true
);
JSplitPane 用于分隔两个(只能两个)
Component
。两个
Component
图形化分隔以外观实现为基础,并且这两个
Component
可以由用户交互式调整大小
。
S
etDividerLocation():
改变 Component
大小
(左面那个
Component
的宽度
).
S
etDividerSize(4):设置分割线的宽度。当为
0
时不能手动改变两组建的宽度。
2009年
6
月
11
日
10:13:35
1.
同步
synchronized (obj) 表示若多个线程同时访问时,只让其中一个线程最先取得
obj
对象并对其加锁,其它线程则阻塞直到取得
obj
对象的线程执行完代码块,此时被加锁的
obj
对象得到释放(解锁),其它线程得到通知取得该
book
对象继续执行。
很多情况下,可以使用synchronized (this){...}
来同步代码块。但需要注意的是,使用
this
作为同步对象的话,如果同一个类中存在多个
synchronized (this){...}
代码块,其中任何一个
synchronized(this)
代码块处于被执行状态,则其它线程对其他
synchronized(this)
代码块的访问也会受到阻塞。
2009年
6
月
18
日
11:17:15
1.
当代码有错的时候,除了把值打印出来,还可以将错误异常打印出来。
2009年
6
月
22
日
14:19:26
1.
class
SymWindow
extends
java.awt.event.WindowAdapter{
public
void
windowClosing(java.awt.event.WindowEvent event){
Object object = event.getSource();
if
(object == dlg_select_server.
this
)
dlg_add_hostnameip_WindowClosing(event);
}
}
void
dlg_add_hostnameip_WindowClosing(java.awt.event.WindowEvent event)
{
this
.closeDialog();
}
对窗体的监听,当窗体关闭就调用该函数。
P
rivate void closeDialog()
{
T
his.setVisible();
T
his.dispose();
}
2.
setVisible(true);函数是阻塞的,也就是如果还没有显示,那么线程就会阻塞在那,直到显示为止。
2009年
6
月
23
日
17:56:05
1.
严格遵守命名规范,代码尽量做到简洁。
2009年
6
月
25
日
17:29:54
1.
在继承DefaultMutableTreeNode
节点时,
自己要清楚需要有哪些属性,就必须自己实现这些属性
。比如,在遍历某磁盘的文件时,肯定有文件和文件夹,要想文件夹能展开,必须得写好isLeaf
函数,因为
java
才能知道是文件夹还是文件。
2009年
6
月
26
日
13:33:59
1.
String name = javax.swing.JOptionPane.showInputDialog(
this
,
"输入节点名字
: "
);
获得输入字符串的值。
2009年
7
月
2
日
18:14:33
1.
比如
panel_1
.setBorder(BorderFactory.
createCompoundBorder
(BorderFactory
.
createEmptyBorder
(-1, 0, -1, -1)
, BorderFactory.
createLineBorder
(Color.
red
)));
是这样的话就只有left
端可以呈现出红色,其他的都不能。因为其他边都设了值。
2009年
7
月
3
日
10:31:49
1.
将一个文本控件的背景颜色跟Frame
的不一样时,可以设置它的背景颜色使它跟
Frame
一样,但是这样会有个问题,设的背景颜色可能在不同的平台上的颜色不一样,所以这样不合适跨平台的做法。最好的做法就是将其控件设置成透明
(setOpaque(false)).
2.
不要使用默认字体,因为不同的字体在不同的平台上是不一样的。所以必须设置一个固定字体,使它在任何平台都使用这个字体。
例如:
label_1.setFont(new Font("
Dialog
", Font.PLAIN, 12));
3.
要想要JDialog
在显示的时候,为阻塞状态,意思就是,用户只能操作该
dialog
,以及
dialog
的
children dialog
,不能将
dialog
的
parent dialog or frame
输入任何东西
,
需要设置对话框模式
(new JDialog(owner,true))
,如下:
public
JDialog
(
Dialog
owner,
boolean modal)
创建一个具有指定所有者 Dialog 和模式的对话框。
此构造方法将该组件的语言环境属性设置为 JComponent.getDefaultLocale 所返回的值。
参数:
owner - 显示该对话框的所有者 Dialog;如果此对话框没有所有者,则为 null
modal - 指定对话框在显示时是否阻塞用户向其他顶层窗口输入。如果为 true,则模式类型属性被设置为 DEFAULT_MODALITY_TYPE;否则对话框是无模式的。
2009年
7
月
13
日
14:20:24
1.
当控件设有setToolTipText()
值时,无法调用
popupMenu.show(this, e.getX(), e.getY());
就是无法弹出快捷菜单。
2009年
7
月
16
日
14:17:40
1.
我发现,先实例化的对象是放在最上面的。最后实例化的放在下面。
2009年
7
月
20
日
11:32:21
1.
JButton 的
actionPerformed
事件将相应的是鼠标的
pressed
和
Released
一起的动作,相应键盘
Enter
的
pressed
事件,相应键盘
space(
空格键
)
的
pressed
和
Released
一起的事件。要让
JButton
响应事件,最好是用
ActionListener
监听事件。例如:我做的
dlg_select_server
.java里响应了鼠标双击事件
(
e.getClickCount() == 2
),它包含了两个
Pressed
和
Released
动作,但
getClickCount
只知道鼠标两个Pressed
事件,响应后会关闭该窗口,而最后一次
Released
动作却由调用
dlg_select_server
.java的类中事件获得,所以它将响应获得的事件。
2009年
7
月
24
日
11:26:35
1.
对DefaultMutableTreeNode
的一点理解:一个字段
userObject
,或者
getUserObject()
得到的是使用这个树节点的对象,可以是
String
,
Object
等。
2.
TableModelEvent
。
TableModelEvent 用于通知侦听器某一表模型已发生更改。
3.
JTreeModel。
若代码更改了树模型,
那么树必须得到通知,这样它就能够对自己进行刷新。该树将把自己作为一个
TreeModelListener
添加给树模型。因此,该模型必须支持下面这些通常的监听管理方法:
V
oid addTreeModelListener(TreeModelListener l);
V
oid removeTreeModelListener(TreeModelListener l);
当该树模型修改树的内容时,它要条用TreeModelListener
接口的下面四个方法:
V
oid treeNodeschanged(TreeModelEvent e)
V
oid treeNOdesInserted(TreeModelEvent e)
V
oid treeNodesRemoved(TreeModelEvent e)
V
oid treeStructurechanged(TreeModelEvent e);
TreeModelEvent对象用于描述发生更改的位置。对描述插入事件或者删除事件的树模型事件进行汇编的具体细节。
EventListenerList用于手机监听器。
2009年
7
月
26
日
9:58:35
1.
ItemListener,接收项事件的侦听器接口。特别适于处理项事件的类实现此接口。如
JCheckBox
。也就是是否选中
jCheckBox
接受
ItemListener
监听