开放系统世界·Java应用问答·6月号-Linux基础
·当前位置: 学海荡舟-论文 >> 电脑技术 >> Linux-DOS >> Linux基础
开放系统世界·Java应用问答·6月号


问:怎么样限制在JTextField里面只能输入4个字母?











答:你可以参考以下例子:

import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.text.*; 
public class Text4 extends JFrame
{
 JTextField jtf=new JTextField(4);
 JLabel jl=new JLabel("请输入4个字母"); 
 public static void main(String[] args)
 {Text4 t4=new Text4();
  t4.setSize(300,300);
  t4.setVisible(true);
 } 
 public Text4()
 {Container content=getContentPane();
  content.setLayout(new FlowLayout());
  content.add(jl); 
  jtf.setDocument(new newDocument());
  content.add(jtf); } 
 class newDocument extends PlainDocument
 {
  public void insertString(int offs,String str,
    AttributeSet a)throws BadLocationException
  {if (this.getLength() == 4)
    str = "";
   super.insertString(offs,str,a);
  }
 }
}


问:JTable可以合并Cell吗?

答:网站//www2.gol.com/users/tame/swing/examples/JTableExamples4.html和//www2.gol.com/users/tame/swing/examples/SwingExamples.html上有着大量参考实例。不过下载所有文件后需要将所有“jp.gr.java_conf.tame.swing”改成“javax.swing”。

问:我在Microsoft的站点下载了一个SQL Server 2000 的JDBC Driver,在Jbuilder 6.0进行相应的配置:

Driver:com.microsoft.jdbc.sqlserver. SQLServerDriver;

URL:jdbc:microsoft.sqlserver://servername:1433

Username:sa Password:****

完成之后点击ok按钮,报错为:The driver: com.microsoft.jdbc.sqlserver. SQLServerDriver could not be loaded. This could be a problem with the driver itself, or that the driver is not found on the classpath。怎样才能将它加入JBuilder 6.0的Classpath中呢?

答:你在JBuilder 6.0的tools→enterprise setup→database drivers中加入Microsoft的JDBC驱动就可以了。在这之前,最好先给JDBC驱动设置一个自定义的Library,方法为点击tools→configure libraries→new,任取一个名称,比如MS Sqlserver Driver,然后在Class中单击add按钮,将Microsoft JDBC的三个Jar文件加入,这三个Jar文件分别是mssqlserver.jar、msutil.jar、msbase.jar。

问:我每次产生EJB时都出现以下问题,怎么解决?

"myEJB.ejbgrp": 
C:\jbuilder5\jdk1.3\bin\javaw -classpath "
C:\EJB\myEJB01\classes;
C:\bea\wlserver6.0\lib\ weblogic_sp.jar;
C:\bea\wlserver6.0\lib\weblogic.jar;
C:\bea\wlserver6.0\lib\ cr_wls60f.jar;
C:\jbuilder5\jdk1.3\DEMO\JFC\ Java2D\Java2Demo.jar;
C:\jbuilder5\jdk1.3\JRE\LIB\ I18N.JAR;
C:\jbuilder5\jdk1.3\JRE\LIB\ JAWS.JAR;
C:\jbuilder5\jdk1.3\JRE\LIB \RT.JAR;
C:\jbuilder5\jdk1.3\JRE\LIB\ sunrsasign.jar;
C:\jbuilder5\jdk1.3\LIB\DT.JAR;
C:\jbuilder5\jdk1.3\LIB\TOOLS.JAR" 
 weblogic.ejbc -keepgenerated -compiler 
C:/jbuilder5/bin/bcjW 
C:/EJB/myEJB01/myEJB.jar.jar 
C:/EJB/myEJB01/myEJB.jar 
"myEJB.ejbgrp": 
Spaces in the temporary directory path may cause WebLogic 
  EJBC utility to produce fatal compile errors.
"myEJB.ejbgrp": 
<2001-11-21 上午10时26分52秒> 
<Error> 
<EJB> 
<EJB Deployment: Enterprise1 has a class myejb01.
Enterprise1Bean which is in the classpath. 
This class should only be located in the ejb-jar file.>
……
“myEJB.ejbgrp”: ERROR: ejbc found errors


答:在Windows 2000中,右击我的电脑→高级→环境变量,把临时目录的空格去掉。或者不修改临时目录,在Enterprise setup下配置Application Servers 中Weblogic 6.1的Compiler for EJBC Usage 也可以。

问:在使用CMP执行Select操作时,是不是只能按照固定方式来查询,就是说有多少种参数组合,就得做多少个findBy...() 呢?

答:一般来说,最终用户是不会和实体Bean直接打交道的,你可以通过会话Bean调用实体Bean。不过可以肯定的是,决不是有多少种组合就得做多少个findBy...()。在<ejb-ql></ejb-ql>这对元素里,可以指定查询条件的。如果用过JDBC的PreparedStatement,就会有助于你对这个问题的了解。因为它们的参数形式是差不多的,例如“SELECT DISTINCT o.col2 FROM table AS o WHERE o.col1 > ?1”。在 <ejb-ql></ejb-ql>这对元素里,使用这样的EJB查询语言应该算是能够达到你的要求了。

问:Java Interface是常量存放的最佳地点吗?

答:由于Java Interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量,因而Interface通常是存放常量的最佳地点。然而在Java的实际应用时却会产生一些问题。 问题的起因有两个,第一,所使用的常量并不是一成不变的,而是相对于变量不能赋值改变。例如在一个工程初期定义常量∏=3.14,而由于计算精度的提高可能会重新定义∏=3.14159,此时整个项目对此常量的引用都应该做出改变。第二,Java是动态语言。与C++之类的静态语言不同,Java对一些字段的引用可以在运行期动态进行,这种灵活性是Java这样动态语言的一大优势。这就使得Java工程中部分内容改变时不用重新编译整个项目,而只需编译改变的部分并重新发布就可以改变整个应用。

问:为什么在Weblogic中Beanshell可以执行一般的脚本语句,但是不能引用其它包中类的问题?

答:其实这不是Beanshell的问题,而是Weblogic本身已经内置了Beanshell类,只不过版本比较老一点。我们知道系统在引用类的时候是按照先找到先用的原理调用的,也就是说如果在Weblogic调用它自己内置的Beanshell类之前找到我们设置的Beanshell包即可。

问:快速开发时可以使用的Java文件工具方法有哪些?

答:Java I/O系统被设计为功能强大并便于扩展,但是当将一个简单的文件加载到一个字符串时,它有时候显得太强大了。你可以使用简单的文件加载和文件保存程序。首先创建一个静态(static)的方法,给出一个字符串的文件名,然后将文件的内容加载到一个字符串中,或者返回一个null表明什么也得不到。参考代码如下:

/**
* 加载给定文件名的内容,如果文件不可加载返回null。
*/
static public String loadFile(String filename) {
 File file = new File( filename );
 try {Reader rdr = new FileReader(file);
  long sz = file.length();
  // can only read in things of MAXINT length
  char[] ch = newchar[(int)sz];
  rdr.read(ch);
  rdr.close();
  return new String(ch);
 } catch(IOException ioe) {
  return null;
 }
}


(责任编辑:西门吹风)
  • 上一篇教程:
  • 下一篇教程:
  • :查看相关:
  • 低格、分区、高格的应对--DOS命令应用实例(三)
  • 清除CMOS密码--DOS命令应用实例(四)
  • DOS系统的维护
  • 我的系统恢复盘
  • dos如何进行系统配置