java笔记

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);
    }
}

你可能感兴趣的:(java笔记)