Liny_@NotePad

沉迷ACG中

几个UML模型的Java实现..(1)

图中所示的分别是关联、组合、聚合……

如何修改OptionPane按钮的文字?

在最近的一个C/S项目中,要求纯英文的。OptionPane弹出的MessageDialog默认选项是“确认”。
百度了下,在使用前(我是放在main的最前面,一般来说可以放在类的static块中)前用UIManager定义一下即可:

UIManager.put("OptionPane.okButtonText",   "OK");

同理的,还有OptionPane.yesButtonText、OptionPane.noButtonText、OptionPane.cancelButtonText等等。

UIManager可以跟踪当前的外观,可以管理AWT的样式。如果要修改的是Swing,可以用AWT的类名来改。

譬如我们要修改JButton的字体时,可以用button.font来put。……

在eclipse中使用SVN

下载eclipse的SVN插件Subclipse:Help -> Software Updates -> Available Softwares -> Add Site

Name: Subclipse 1.2.x (Eclipse 3.2+)
URL:  http://subclipse.tigris.org/update_1.2.x
   
Name: Subclipse 1.0.x (Eclipse 3.0/3.1)
URL:  http://subclipse.tigris.org/update_1.0.x

按版本号输入URL,确认后左边菜单会出现你所添加的url,勾中后单击Install,等它下载好后一路next。

安装完成后重启eclipse。

对项目右键team -> share project ->SVN,之后自己配置即可。完成后会提交初次资源,之后项目的Team菜单中就有svn的各种选项了。

win下架设SVN服务器

先到svn的官方上下载一个svnserve,我用的是CollabNet Subversion Server。

下载好exe后安装。点点点点点点。

再下载个TortoiseSVN,新建个仓库,打开该文件夹下的conf目录,

修改svnserve.conf内容为

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository

再修改passwd文件,在[users]下增加形如

linyq = linyq
yoyo = 1989

 

之类的记录。格式是 用户名 = 密码。

最后修改authz文件,在最后增加

[/]
linyq = rw
yoyo = rw

 

即表示linyq和yoyo用户对/目录有读写权限。

还可以修改[groups]等属性,在此不再赘述。

开始-运行-cmd,打开到svn server的安装目录(不是仓库目录),执行以下命令:

svnserve -d -r e:/svnserve

这里的e:/svnserve是你的仓库目录。

此时svnserve即开始运行了,可以找个目录去checkout你的仓库试下。

注意不要关闭cmd,否则svn服务会停止。

若要注册服务使系统开机自启动,则在cmd下键入

sc create SubVersion_Service binpath="f:\Program Files\CollabNet Subversion Server\svnserve.exe --service -d -r e:\svnserve displayname="Subversion Repository" depend=Tcpip

即可。其中第一个是安装目录,第二个是数据仓库目录。

删除服务则是

sc create SubVersion_Service

这个sc只有在2000以后的系统中才有,2000是没有的,可以从xp中拷一个,或者使用“计划任务”为其定制一个开机自启动。

Swing设置默认焦点

 假设要设定默认焦点为defaultButton,则初始化窗体时

  1. this.addWindowListener(new java.awt.event.WindowAdapter() {
  2.             public void windowOpened(java.awt.event.WindowEvent evt) {
  3.                 defaultButton.requestFocus();
  4.             }
  5. });

即可。

FJNU2009系列赛二总结

虽然我没参加 囧 虽然我没做完 囧 随便写写~……


A. FJNU09排序
遇到F直接输出,同时算下JNU09的数量打印,最后把非FJNU09的字符打出 - -。囧

B. FJNU字符串
嵌套循环,囧。

C.Little Boy's Problem
高精度+枚举不知能否暴力出来?没去试……

D.Lucky Number
统计下各个字母出现的次数,再判断MAX-MIN是否素数即可 囧。

E.城堡
BFS找最短路径,回溯算下最短的路径数。由于太麻烦所以没写 囧。

F.莫尔斯码
将字符串按非.-字符拆分,每个用map来找就好了。注意输入字符串长度>300,<1000,具体在什么值不知道囧。

G.谁拿了最多奖学金
直接模拟,算下每人奖学金看看是否最多的并且加到总数中循环结束了直接输出 囧。


总结
纳新的题目比新生赛容易许多 = = 让孩子们找到了自信
上一场cjy+wekooo+tzw的组合实在太BT了,
不过太简单也不大好 Orz 不能考察真正的实力……

PL/SQL课堂练习(过程、函数、包、触发器)

1、过程练习,掌握过程参数(in/out/in out)及调用环境
 1.1)过程名字PROC_EMP(in hireYear,out manCount,in out commis_pct)
  需求描述:
   输入一个hireYear,计算出该年入职的员工数staffCount;
   给定一个commis_pct,上述范围的职员如果没有提成(commission_pct)的,
   用这个数作为他的提成,已有提成的,不做改动
   上述范围职员的提成最大值用commis_pct参数返回

  1. CREATE OR REPLACE PROCEDURE proc_emp(hireYear IN NUMBER, manCount OUT NUMBER, commis_pct IN OUT NUMBER) IS
  2.        
  3.        -- 计算出该年入职的员工数staffCount
  4.        SELECT COUNT(*)
  5.        INTO manCount
  6.        FROM employees
  7.        WHERE hireYear = TO_CHAR(hire_date,'yyyy');
  8.        
  9.        -- 给定一个commis_pct,上述范围的职员如果没有提成(commission_pct)的,
  10.        -- 用这个数作为他的提成,已有提成的,不做改动
  11.        UPDATE employees
  12.        SET COMMISSION_PCT = commis_pct
  13.        WHERE hireYear = TO_CHAR(hire_date,'yyyy') AND commission_pct IS NULL;
  14.        
  15.        -- 上述范围职员的提成最大值用commis_pct参数返回
  16.        SELECT MAX(commission_pct)
  17.        INTO commis_pct
  18.        FROM employees
  19.        WHERE hireYear = TO_CHAR(hire_date,'yyyy');
  20.        
  21.        RETURN;
  22.  
  23. END proc_emp;

 

PL/SQL课堂练习(匿名块)

1、普通变量声明
 1)、声明3个变量:full_name varchar2(20),salary number(9,2),fdate date
 2)、用Select into语句从employees表为上面3个变量赋值,条件是rownum <= &_rownum
 3)、用DBMS_OUTPUT.PUT_LINE()打印三个变量值,结果如:Mickel.Jordon 's salary is $4680, Joined in 1987-07-12
 4)、另外声明常量PI,NUMBER(2,7)=3.1415926,声明变量flag BOOLEAN,默认值=FALSE,声明变量age NUMBER,无默认值
 5)、打印上述变量

  1.  
  2.    full_name VARCHAR2(20);
  3.    salary NUMBER(9,2);
  4.    fdate DATE;
  5.    pi CONSTANT NUMBER(8,7) := 3.1415926;
  6.    flag BOOLEAN := FALSE;
  7.    age NUMBER;
  8.  
  9.  
  10.    SELECT first_name||'.'||last_name, salary, hire_date
  11.    INTO full_name, salary, fdate
  12.    FROM employees
  13.    WHERE ROWNUM <= &_rownum;
  14.  
  15.    DBMS_OUTPUT.PUT_LINE(full_name||' ''s salary IS $'||salary||', Joined in '||to_char(fdate,'yyyy-MM-dd'));
  16.  
  17.    DBMS_OUTPUT.PUT_LINE('pi:'||pi);
  18.  
  19.    IF flag THEN
  20.       DBMS_OUTPUT.PUT_LINE('true');
  21.    ELSE
  22.       DBMS_OUTPUT.PUT_LINE('false');
  23.    END IF;
  24.  
  25.    DBMS_OUTPUT.PUT_LINE('age:'||age);
  26.