[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] JDK1.2.2でHGridのセルが見えない




えんどうです。

ひがさんのデータベース対応コンポーネントを使っています。

http://www.javaopen.org/jfrineds/dbcompo.html

Windows 95, JDK1.2.2, Oracle 7.3で、HGrid を使うアプレットを書きました。
(アプリケーションとして実行)
メモリーが 32MB のマシンなので JBuilder は使っていません。

Oracle 7.3 にはコネクトできて、HNavigator でナビゲートもできるのですが、
HGrid にセルが表示されません。
(デフォルトの、左上にひとつヘッダーのセルがある状態)

個々のセルの領域をクリックして、編集状態にするとそのセルだけ表示されます。
何がいけないんだろう...

[実行結果]
d:\javastart\jdbc>java HApplet
driver=Oracle JDBC driver
product=Oracle
version=Oracle7 Workgroup Server Release 7.3.2.2.1 - Production Release
PL/SQL Release 2.3.2.2.0 - Production

[ソース]
// JDBC Component Test Applet
// HApplet.java (AWT Components)

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import higa.sql.*;

import higa.sql.dataset.*;
import higa.jhcl.model.*;
import higa.jhcl.control.*;
import higa.jhcl.view.*;

public class HApplet extends Applet {
  private static final String ORA_DRIVER = "oracle.jdbc.driver.OracleDriver";
  private static final String ORA_URL = "jdbc:oracle:thin:@xxxxxxxxxx:1521:ORA7";
  private static final String ORA_USER = "agent007";
  private static final String ORA_PASSWORD = "goldfinger";
  
  HDatabase database_ = new HDatabase(); // 
  HDataSet dataset_   = new HDataSet();  // 
  
  HNavigator navigator_ = new HNavigator();
  HGrid grid_           = new HGrid();
  Label slabel_         = new Label();
  
  public HApplet() {
  }
  
  public void jbInit() {
    // GUI の構築
    this.setLayout( new BorderLayout() );
    
    Panel uppanel = new Panel();
    this.add(uppanel, "North");
    
    navigator_.setDataSet(dataset_);
    uppanel.add(navigator_);
    
    grid_.setDataSet(dataset_);
    this.add(grid_, "Center");
    grid_.paintAll( this.getGraphics() );//TEST
    
    Panel spanel = new Panel();
    this.add(spanel, "South");
    
    spanel.add(slabel_);
  }
  
  public void init() {
    // Oracleとの接続
    database_.setDriver(ORA_DRIVER);
    database_.setConnectionURL(ORA_URL);
    database_.setUserName(ORA_USER);
    database_.setPassword(ORA_PASSWORD);
    try {
      database_.setAutoCommit(false);
      database_.open();
      DatabaseMetaData meta = database_.getMetaData();
      System.out.println("driver=" + meta.getDriverName());
      System.out.println("product=" + meta.getDatabaseProductName());
      System.out.println("version=" + meta.getDatabaseProductVersion());

      // HDataSet 構築
      String query = "SELECT * FROM GOLF_SCORE";
      dataset_.setDatabase(database_);
      dataset_.setQuery(query);
      dataset_.open();
    } catch (SQLException ex) {
      int errcode = ex.getErrorCode();
      String message = ex.getMessage();
      String state = ex.getSQLState();
      System.out.println("SQL ERROR:");
      System.out.println("errcode=" + errcode + ", message=" + message + ", state=" + state);
    } catch (Exception ex) {
      // open() のエラー
      String message = ex.getMessage();
      System.out.println("ERROR:");
      System.out.println("message=" + message);
    }
    
    // GUIの構築
    jbInit();
  }
  
  public void destroy() {
    // Oracleからの切断
    // HDataSet のクローズ
    if (dataset_ != null) {
      if ( dataset_.isOpen() ) {
        try {
          dataset_.close();
        } catch (SQLException ex) {
          // 
          int errcode = ex.getErrorCode();
          String message = ex.getMessage();
          String state = ex.getSQLState();
          System.out.println("DATASET CLOSE ERROR:");
          System.out.println("errcode=" + errcode + ", message=" + message + ", state=" + state);
        }
      }
    }
    
    // HDatabase のクローズ
    if (database_ != null) {
      if ( database_.isOpen() ) {
        try {
          database_.close();
        } catch (SQLException ex) {
          // 
          int errcode = ex.getErrorCode();
          String message = ex.getMessage();
          String state = ex.getSQLState();
          System.out.println("DATABASE CLOSE ERROR:");
          System.out.println("errcode=" + errcode + ", message=" + message + ", state=" + state);
        }
      }
    }
  }
  
  public static void main(String[] args) {
    Frame f = new Frame();
    final HApplet applet = new HApplet();
    f.add(applet);
    applet.init();
    applet.start();
    f.addWindowListener( new WindowListener() {
      public void windowOpened( WindowEvent e ){}
      public void windowClosed( WindowEvent e ){}
      public void windowClosing( WindowEvent e ){
        applet.destroy();
        System.exit(0);
      }
      public void windowIconified( WindowEvent e ){}
      public void windowDeiconified( WindowEvent e ){}
      public void windowActivated( WindowEvent e ){}
      public void windowDeactivated( WindowEvent e ){}
    });
    f.pack();
    f.setSize(400, 320);
    f.show();
  }
}
-- 
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Japanese Only)