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 监听
2. 2、 JSplitPane 。 splistPane. setResizeWeight (1.0); 指定当分隔窗格的大小改变时如何分配额外空间。 使额外空间给上面和右面。
2009-8-11
1.牢记引用涵义。
public class JavaExe_5 {
static void operate (StringBuffer x,StringBuffer y){
/*
* 这里 x 获得了 a 的引用, y 获得了 b 的引用
* 当执行了 append 命令时, StringBuffer 会更改引用值和实际地址值
* 所以这里 x=AB,a=AB
*
* y=x仅仅时引用赋值,没有改变实际地址值
* 所以这里 y=AB,b=B
*/
x.append(y);
System.out.println(x);
y = x;
System.out.println(y);
}
public static void main(String[] args){
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a + "," + b);
}
}