来週のネタとか(゚ε゚)
編集者:Terai Atsuhiro
作成日:2006-01-29
更新日:2010-02-09 (Tue) 02:10:05
概要
Swing関係の自分用のメモとかネタ帳みたいなものです。
移動: ネタのリクエスト、Swingのサンプルに関するメモ
- 以前ここで頂いたコメントは、Comments/Swingに移動しました。
- Swingのサンプルに関するメモは、Swingのサンプルに関するメモ - てんぷらメモ@はてなに移動しました。
Swing調整中のネタ一覧
調整中
Web Start でも大丈夫かなどをテスト中。リストからの削除、内容の変更、Exceptionの発生があっても(゚ε゚)キニシナイ!!
Swing/CubeEffect?
Swing/DropOnTabTitle?
Swing/DefaultLookAndFeelDecorated?
Swing/NonEditableLine?
Swing/NoArrowButtonCellEditor?
Swing/UninstallListeners?
Swing/UIDefaultsOverrides?
Swing/ProgressMonitor?
- 1.6.0_14にすると、web start(2回目以降?) で CPU 100%になる?
- 自宅のPCでは再現しない。
- Java Web Start & JNLP - BouncyCastle via Java Web Start 1.6.0_14
- Java Web Start & JNLP - Upgrade to 1.6.0_14 causing Webstart launched application to fail
- Deploying Your Rich Internet Application Nice And Easy!
- jnlp.packEnabled, jnlp.versionEnabled
検討中で未実装
こっそり消えても(゚ε゚)キニシナイ!!
- Swing/TitledSeparator?
- Swing/Clipboard?
- Swing/FileChooserWithOptionPane?
- %JAVA_HOME%\demo\jfc\FileChooserDemo\src\FileChooserDemo.java
- %JAVA_HOME%\demo\jfc\SwingSet2\src\FileChooserDemo.java
テスト
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
class DocumentFilterTest {
public JComponent makeUI() {
JTextArea textArea = new JTextArea();
((AbstractDocument)textArea.getDocument()).setDocumentFilter(
new FirstCharToUpperCaseDocumentFilter(textArea));
textArea.insert("asdfasdfasdfasdfasdf", 0);
JPanel p = new JPanel(new BorderLayout());
p.add(new JScrollPane(textArea));
return p;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new DocumentFilterTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
class FirstCharToUpperCaseDocumentFilter extends DocumentFilter {
private final JTextComponent textArea;
FirstCharToUpperCaseDocumentFilter(JTextComponent textArea) {
super();
this.textArea = textArea;
}
@Override public void insertString(FilterBypass fb, int o, String s,
AttributeSet a) throws BadLocationException {
System.out.println("insertString");
if(s==null) return;
replace(fb, o, 0, s, a);
}
@Override public void remove(FilterBypass fb, int o, int l)
throws BadLocationException {
System.out.println("remove");
Document doc = fb.getDocument();
if (o==0 && doc.getLength()-l>0) {
fb.replace(0, l+1, doc.getText(l, 1).toUpperCase(), null);
textArea.setCaretPosition(0);
} else {
fb.remove(o, l);
}
}
@Override public void replace(FilterBypass fb, int o, int l, String s,
AttributeSet a) throws BadLocationException {
System.out.println("replace");
if (o==0 && s.length()>0) {
s = s.substring(0,1).toUpperCase()+s.substring(1);
}
fb.replace(o, l, s, a);
}
}
あとで消すメモ
- https://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/table/TableModel.html#isCellEditable(int,%20int)
- Bug ID: 4292804 DefaultTableModel doc confusion between isCellEditable and setValueAt
- rowIndex および columnIndex に位置するセルが編集可能な場合に true を返します。そうでない場合は、セルの setValueAt はそのセルの値を変更しません。
- JTableHeader + KeyEvent.VK_SPACE
Windows XP(日本語?)+JDK 1.6.0_17 では、F8キーでJTableHeaderにフォーカスを移動して、SPACEキーを押してもソートされない?
以下のように設定しても、KeyEvent.VK_SPACEはうまくいかない。KeyEvent.VK_F9とかなら大丈夫。
InputMap im = table.getTableHeader().getInputMap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); im.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "toggleSortOrder");
キーボードが壊れたのかもと思ったけど、JDK 1.7.0 では、問題なく動作している?。暇なときに、Bug Database を調べること。
Google Document Viewer
Swing 修正予定・検討メモ
実際にやるかどうかは未定ですが、今後Swing Tipsを改良したいと思っていることをメモしています*1。
- ライセンス
- What license should I use for code snippets released on my blog? - Stack Overflow
- http://hobbylinux.info/download/rtl8181/src/GPL/wireless_tools.25-broken!!!/sample_pm.c
- 上記の英語をぱくって、こんな感じのライセンスにしようと思ってるけど、どうだろう? まあ、なんでも、いいですけれど。
- This particular snipset of code is available under the Apache license, BSD license, CC0, ..., WTFPL (at your choice).
- xrea+を移動
- svnが使用できるはず
- スパム対策
英数のみのコメント禁止別の対策を導入再度英数のみのコメント禁止
- ソースコード
- TableSorter.javaをJDK6のTableRwoSorterに置き換える
- ソートする意味のないサンプルで使用しているTableSorter.javaは削除
- リポジトリ(Subversion)を公開(JavaForge、sourceforge.jpとか調べる)
- もしくは全ソースコードの一括ダウンロードを簡単に(wgetなどの対策)
- Mercurial にするかも
SwingSet2SwingSet3のようにサンプルプログラムからソースコードを閲覧できるように?- Wiki中のサンプルコードでクラスなどをjavadocに自動リンク
- 適当すぎる文字列("aaaaaaaa"とか、"ちとしはちとしは"など)をなんとかする
- 日本語、文字コード
- TableSorter.javaをJDK6のTableRwoSorterに置き換える
- Swing、Java2D、javaFXなどDesktop関係専用の質問掲示板(日本語)
- いい掲示板を探すor作ってもらう
- 質問者が画像、スクリーンショットを貼れる
- UIの質問には是非欲しい(ただしグロ除けで管理者が認証)
- 質問者がソースコード、JWS(jnlp)などが投稿できるように
- 質問内容を把握できるサンプルを、SandBox内で安全に実行
- OS、Javaのバージョンが簡単に入力できる
- 入力しないと投稿できないでも可
- 質問が解決してもCloseしない
- できれば検索機能が充実したもの
- 管理者、回答者などが勝手にタイトル変更or分類可能
- 「タイトル: 教えてください」除け
- 匿名で回答は可、匿名で質問は不可
- メールアドレスなどを登録している回答者には、質問者はポイント付与できる
- スクリーンショット
- すべて撮り直す(prefixのコロン:)
- 自動更新
- screenshot一覧ページの分割、画像サイズ削減
- サンプルアプリのタイトルを修正(英語化?)してスクリーンショット全部取り直し
- キャッシュ一覧で探しやすいように、タイトルの頭に「サ:」(サンプル)を付けていたのを、「JST 」(Java Swing Tips)に変更
- 日本標準時ではない…
- 独自ドメインへの移行
- 検索エンジン対策
現状ではterai.s55.xrea.comの時みたいに、また八分+全消しボーナスを食らう可能性がある(理由も不明だし)- ペナルティは、ウェブマスターツールで調べれば、ある程度判るようになっている
- s55.xrea.comなどが、八分られたのは、存在しないページが404を返さずに200でxreaのトップに飛ぶようになっていた(自信無し)から?
- Swing Tipsのみ分離
- 簡単にコンパイル、実行
- Ant(build.xml)、バッチファイル、シェルスクリプトの改良
- build.xml の整理
- NetBeans (Eclipse) .classpath、.projectの追加
- src.zipのファイル名を、それぞれ適当なものに変更?
- Ant(build.xml)、バッチファイル、シェルスクリプトの改良
- 公開予定日
- 先にページを作っておいて、指定した日時が来たら自動的に公開
- 各Tipsの難易度表示
- こちらで適当に評価するか、ユーザに評価してもらうか…
- レーティングバー
- 分類
- Animationの一部をTransitionに分離
JTableを2つに分割- JTableのTipsを分割
- Web Start
- 「プログラムの追加と削除」に登録されない方法を探す
- キャッシュを無効にする
- UI操作無しで全部削除できる方法を探す
- javaws -uninstall
- 起動時にスプラッシュスクリーンを表示しない方法を探す
- javaws -Xnosplash <jnlp>
- 「プログラムの追加と削除」に登録されない方法を探す
- バージョン
- JDK 6 と JDK 1.6 どちらかに揃える
変更済み
ソースコードだけ検索
ソースコード、FindBugs, PMDソースコード、Ubuntuなどでも実行できるようにe.isPopupTrigger()を使ってJPopupMenuを表示している箇所(JDK 5 以前のソース)を、すべてsetComponentPopupMenuに変更する。
ソースコード、1.5以上対応に変更Color クラスにおける定数の大文字化ソースコード、codeプラグインで色分けソースコード、build.xmlなどをすべてUTF-8化バッチファイルの代わりにantのタスクを使うように変更- antのbuild.xmlにrunタスクを追加、ただしバッチファイルも残すことに
sampleをexampleに統一Swing/JarFileをAntの下に移動する分類: JTree JButton
リンクメモ(自分用)
- Core Java Technologies Tech Tips
- Styling Digital Images with ConvolveOp and Using HttpURLConnection to Access Web Pages Tech Tips
- Online Training and Tutorials
- Java Technology Fundamentals Newsletter
- Chapter 6 Continued: Advanced Printing
- Short Course
- Learning Java 2D, Part 1
- Creating Wizard Dialogs with Java Swing
- Using JConsole to Monitor Applications
- VolatileBufferedToolkitImage Strategies
- Intermediate Images
- Java 2D: New Printing Package
- Deploying Software with JNLP and Java Web Start
- Java look and feel Graphics Repository
- Java 2D API Sample Programs
- Java Look and Feel Design Guidelines
- How to Write Doc Comments for the Javadoc Tool