「Visual Cafe ver.3で学ぶJavaプログラミング入門」追補情報 |
★バグ情報★ |
※P37 下から4行目
「JFC Applet」→「JFCアプレット」
用語の記述ミスです。Visual CafeではJFCのJAppletをベースにしたアプレットのプロジェクトを「JFCアプレット」と呼び、プロジェクトの作成ダイアログなどでもそのように表示しています。が、本書を執筆しているときに使用していたベータ版では、名称が「JFC Applet」と英語表記であったため、そのままになってしまいました。以後、「JFC Applet」という表示は全て「JFCアプレット」と読み替えて下さい。
※P78 1行目〜3行目
java.awt.Font font1;
font = new Font("Dialog", Font.Plain,48);
label1.setFont(font);
↓
java.awt.Font font1;
font1 = new Font("Dialog", Font.Plain,48);
label1.setFont(font1);
これは、インスタンス宣言しているfont1がfontとクラス名になっているという単純な記述ミスです。おそらくほとんどの方は見てすぐに気づいたことと思いますが、校正時に見逃していました。
P138 (4)の項目
checkbox1 を radioButton1 に。
P139 (6)の項目
checkbox2 を radioButton2 に。
以上、radioButtonをcheckboxと記述した誤植です。
P173 (4)の図
オーバーライドするメソッドが「paint」ではなく「print」が選択されています。正しくは「paint」を選択です。これは本文と図が違っているので、本文のほうを読めば間違えることはないかと思いますが…。
★FAQコーナー★ |
●7-2のJTreeの説明で、途中からフォームデザイナの機能が聞かなくなってしまいます。ボタンなどを新たに追加しようとすると「必要なタグが失われています」というエラーが起きてしまうのですが。
答え)これは、どうやらDefaultMutableTreeNodeのインスタンス宣言を書く場所に問題があるようです。おそらく、多くの人は//{{DECLARE_CONTROLSタグ部分にインスタンス宣言を追記していると思いますが、これを、タグの前に移動してみて下さい。すなわち、
DefaultMutableTreeNode root = new DefaultMutableTreeNode("this is root."); DefaultMutableTreeNode nodeA = new DefaultMutableTreeNode("this is NodeA."); DefaultMutableTreeNode nodeB = new DefaultMutableTreeNode("this is NodeB."); DefaultMutableTreeNode nodeA1 = new DefaultMutableTreeNode("No,1"); DefaultMutableTreeNode nodeA2 = new DefaultMutableTreeNode("No,2"); DefaultMutableTreeNode nodeB1 = new DefaultMutableTreeNode("No,1"); DefaultMutableTreeNode nodeB2 = new DefaultMutableTreeNode("No,2"); DefaultTreeModel TModel = new DefaultTreeModel(root); //{{DECLARE_CONTROLS com.sun.java.swing.JTree JTree1 = new com.sun.java.swing.JTree(); //}}このようにするわけです(initメソッドなど関連ないコードは除いてあります)。当方では、このようにすることで問題を回避できました。
●55ページでAWTアプレットのプロジェクトを保存すると作成されるファイルについて書いてありますが、プロジェクトを保存したところ、「autogen…」というHTMLファイルが作成されません。これはどうすれば作られるのですか。
答え)このHTMLファイルは、作成したアプレットを呼び出すために作られるものです。これは、プロジェクトを保存したときではなく、保存後、最初にプロジェクトを実行した際に作られます。ですから、保存後、「実行」メニューを選んでプロジェクトを動かしてみて下さい。終了後、再度ファイルを確認すれば、HTMLファイルは作成されているはずです。
●249ページでJSplitPaneの左右にJPanelを組み込みレイアウトをすると、配置したボタンなどの部品が勝手に再配置されてしまい、本の図のようにきれいにならべられないのですが。
答え)なぜレイアウトが変わってしまうかといえば、それは組み込んだJPanelのレイアウトマネージャが、デフォルトでFlowLayoutに設定されているからです。本書では、レイアウトを見やすくするために、組み込んだJPanelのLayoutプロパティをnoneに変更してあるのですが、それについて記述を忘れていました。大変失礼しました。従って、本書の図と同様に自由なレイアウトをしたい場合は、組み込むJPanelのLayoutを変更して下さい。
●JTableの説明で、CellEditorというのを定義することで更に高度な表現が可能になるとありましたが、その具体的な説明がないのでどのようにすればいいのかわかりません。何か参考になる資料などはありませんか。
答え)JTableのCellEditorについては、ごく単純なポップアップタイプのDefaultCellEditorを使う例だけにとどめておきました。CellEditorは本格的に使おうとすると、それだけで数十頁もの解説が必要となります。このため、Visual CafeとJavaの入門的意味合いの強い本書では、その導入部だけにとどめました。
JTableとCellEditorについては、「SwingによるJava GUIプログラミング II」(カットシステム、大村忠史・著、3200円)にかなり詳しい説明があるので参考にされるとよいでしょう。この本は1と2があり、1に基本的なSwingの説明が、2にJTableを中心とした説明があります。また、最近になってJava2の解説書が少しずつ出てきていますので、それらを参考にされるとよいでしょう。
●JTabbedPaneのTitles設定で質問です。235ページの手順通りにJTabbedPaneを作成し、Titlesプロパティを設定すると、エラー表示が出てしまいます。
答え)現在リリースされているバージョンのVisual Cafeでは、JTabbedPaneのTitlesプロパティを設定する場合、各タブ表示用のコンポーネントがいくつ組み込まれているかでタイトルの設定個数をチェックしているようです。このため、全くコンポーネントを
組み込んでいない状態でTitlesを設定するとエラーが生じます。
が、値を設定するコードそのものは組み込まれていますので、そのまま気にせずに作業を進め、JPanelを組み込めば、正常にタブのタイトルが表示されるかと思います。
きちんとエラーが起きないように作業を進めたい場合は、235ページの手順で、まず最初に3の作業を行なってJPanelを組み込んでから、2のTitlesプロパティを設定するようにしてみて下さい。