TITLE:Java Swing Tips
#keywords(Java Swing)
#description(Java Swing での GUI プログラム作成のコツなどを、「小さなサンプル(ソースコード付き)」を使って紹介しています。)

RIGHT:Posted by &author(aterai); at 2003-09-25
* Java Swingのサンプル [#a9e9d42a]

#contents(big)

* 概要 [#qb9561c8]
- このページ以下では、`Java Swing`での`GUI`プログラム作成のコツなどを、「小さなサンプル(ソースコード付き)」を使って紹介しています。
-- `Swing`どころか`JFC`にも無関係な`Tips`も混在していますが、細かいことはあまり気にしない方向で…。

CENTER:[https://picasaweb.google.com/at.terai/JavaSwingTips02 &ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQslJy3MxYI/AAAAAAAAAts/xrxOCvbp-0A/s800/screenshots.png);]

- 上の画像をクリックすると`Picasa`の画像一覧に移動します。以前の[[スクリーンショット一覧>Swing/_ScreenShots]]は、スライドショーに変更しました。

** Swingとは [#p0b76fde]
`Swing`は、`GUI`(グラフィカル・ユーザ・インタフェース)を作成するための、`Java`標準のコンポーネントセット(ライブラリ、`UI`ツールキット)です。

RIGHT:[http://docs.oracle.com/javase/tutorial/uiswing/start/about.html About the JFC and Swing (The Java™ Tutorials)]

* Tips一覧 [#e739db5d]

#twocolumn

- `javax.swing.JComponent`
-- [[JTable(35)>Swing/_JTable]]
--- [[CellEditor CellRenderer(32)>Swing/_CellEditor]]
--- [[JTableHeader TableColumn(22)>Swing/_JTableHeader]]
--- [[TableRowSorter RowFilter(18)>Swing/_TableRowSorter]]
--- [[JDK1.5.0(6)>Swing/_JTable1.5.0]]
-- [[JTextPane JEditorPane JTextArea(46)>Swing/_JTextPane]]
-- [[JButton JCheckBox JToggleButton JRadioButton(45)>Swing/_JButton]]
-- [[JTree(39)>Swing/_JTree]]
-- [[JComboBox(36)>Swing/_JComboBox]]
-- [[JTabbedPane(32)>Swing/_JTabbedPane]]
-- [[JFrame JDialog JWindow(31)>Swing/_JFrame]]
-- [[JScrollPane JViewport JScrollBar(25)>Swing/_JScrollPane]]
-- [[JTextField JPasswordField(24)>Swing/_JTextField]]
-- [[JMenuBar JToolBar JSeparator(22)>Swing/_JMenuBar]]
-- [[JPopupMenu(20)>Swing/_JPopupMenu]]
-- [[JProgressBar ProgressMonitor(20)>Swing/_JProgressBar]]
-- [[JLabel(19)>Swing/_JLabel]]
-- [[JList(19)>Swing/_JList]]
-- [[JSpinner(17)>Swing/_JSpinner]]
-- [[JPanel JSplitPane(16)>Swing/_JPanel]]
-- [[JToolTip(16)>Swing/_JToolTip]]
-- [[JInternalFrame JLayeredPane JDesktopPane(15)>Swing/_JInternalFrame]]
-- [[JFileChooser(12)>Swing/_JFileChooser]]
-- [[JSlider(11)>Swing/_JSlider]]
-- [[JLayer(10)>Swing/_JLayer]]

#twocolumn

//#amazon2(4873112788)

- `Others`
-- [[Graphics(34)>Swing/_Graphics]]
-- [[Animation(27)>Swing/_Animation]]
-- [[Layout(23)>Swing/_Layout]]
-- [[Drag&Drop(21)>Swing/_DnD]]
-- [[SwingWorker(20)>Swing/_SwingWorker]]
-- [[Hyperlink Html(19)>Swing/_Hyperlink]]
-- [[Font(16)>Swing/_Font]]
-- [[Focus(15)>Swing/_Focus]]
-- [[Border(14)>Swing/_Border]]
-- [[LookAndFeel(12)>Swing/_LookAndFeel]]
//--- [[NimbusLookAndFeel()>Swing/Nimbus]]
-- [[File(9)>Swing/_File]]
-- [[Cursor(7)>Swing/_Cursor]]
-- [[TrayIcon(5)>Swing/_TrayIcon]]
-- [[Sound(4)>Swing/_Sound]]
-- [[Others(19)>Swing/_Others]]

- `JDK 6`, `JDK 7`
-- [[JDK 6, 7 での Swing 新機能(31)>Swing/_JDK6]]

- `Screen shots`
-- [[スクリーンショット一覧(539)>Swing/_ScreenShots]]

#twocolumn

* 編集方針 [#ja35f484]
- ''最も欲しいものはサンプルである'' ([http://dodgson.org/omo/t/?date=20070706#p02 steps to phantasien t(2007-07-06)]から引用)
-- 各ページからダブルクリックなどで実行可能な`JAR`ファイルがダウンロードできます。
- ''SSCCE'' ([http://sscce.org/ Short, Self Contained, Correct Example])
- ''MCVE'' ([http://stackoverflow.com/help/mcve How to create a Minimal, Complete, and Verifiable example - Help Center - Stack Overflow])
-- すべての記事にソースコードや画像などのリソース、これらを[[Ant]]で簡単にコンパイル、実行するための`build.xml`をまとめた`zip`ファイルを添付しています。
-- または、[[Subversion]]のリポジトリから、以下のようにしてまとめて取得することができます。
 svn checkout http://java-swing-tips.googlecode.com/svn/trunk/ java-swing-tips-read-only

- `JNLP`ファイルについて
-- [http://www.java.com/ja/download/faq/signed_code.xml ブラウザのJavaセキュリティ・メッセージの変更]
//-- [https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias New security requirements for RIAs in 7u51 (January 2014) (Java Platform Group, Product Management blog)]
-- `7u51`から、署名が無い場合や、自己署名の場合は[[JavaWebStart]]で実行不可になったので、&ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TRD2KGq73BI/AAAAAAAAAwA/N8-6EXongNk/s800/webstart.png); ボタンをすべてのページから削除
--- [[JavaWebStart]]の記事も修正、または削除する予定

//-- 各ページの &ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TRD2KGq73BI/AAAAAAAAAwA/N8-6EXongNk/s800/webstart.png); ボタンをクリックすると、サンプルプログラムが起動します。
//--- 「`Java`コントロール・パネル」、「セキュリティ」で「ブラウザで`Java`コンテンツを有効にする」にチェックをしておく必要があります。
//--- セキュリティ脆弱性などが無い場合、これらのサンプルは、[[JavaWebStart]]のサンドボックス内で実行され、ローカル`PC`のリソースにはアクセスしません。アクセスする必要のあるサンプルは、ソースコードなどをダウンロードして確認してから実行してください。
//-- 一時ファイルを保持する設定の場合、[http://terai.xrea.jp/data/jws/player.jnlp Java キャッシュビューア]から、一度試したサンプルを再度実行したり、全部まとめてアンインストール(`javaws -uninstall`)できます。
//--- `Java`コントロール・パネル(`javaws -viewer`) から一時ファイル表示でもキャッシュ一覧が起動します。
//--- 参考: [http://aqubiblog.blogspot.com/2008/02/jwsjava.html 某開発者の独り言: JWSのJavaアプリケーションキャッシュビューア]

RIGHT:[http://d.hatena.ne.jp/aterai/20071016/1192516545 (Java Swing 引用メモ) Swingのサンプルに関するメモ]

* 更新履歴 [#v6d4524e]

#twocolumn

- 2014-05-26
-- [[JTableのリサイズで最後のTableColumnのみリサイズする>Swing/ResizingColumnAndTable]]を追加

- 2014-05-19
-- [[JInternalFrame間でのドラッグ&ドロップによるJTableの行入れ替え>Swing/InternalFrameDropTarget]]を追加

- 2014-05-12
-- [[JTextFieldの表示領域をJScrollBarでスクロールする>Swing/HorizontalVisibility]]を追加

- 2014-05-05
-- [[JListのセル上にToolTipを表示する>Swing/ToolTipOnCellBounds]]を追加

#twocolumn

- [[以前の更新履歴>Swing/_ChangeLog]]
- バグや誤字の修正などは随時おこなっていますが、簡単なものについては追記にせず上書きしています。すべての履歴が必要な場合は、以下を参照してください。
--- ソースは、リポジトリ(`svn repository`)から履歴を参照可能
--- 各ページの解説などは、上部メニューから`diff`(変更された箇所をみる)、`backup`(更新履歴を参照する)が利用可能

#twocolumn

#twocolumn

* 動作環境 [#dcae6b30]
このサイトにあるサンプルの、動作・テスト環境や、`JDK`のダウンロード、利用方法、質問、不具合報告についてお願いなどを記述しています。

- [[動作環境、サンプルの実行方法などについて>Swing/_TestedEnvironments]]

#twocolumn

* 参考リンク [#v0bd3645]
参考にしたサイトなどのリンクをまとめています。
- [[Java Swing 参考リンク>Swing/_Link]]

以前このページの下にあった`Java Swing Hacks`本のレビュー?は、すべて[http://d.hatena.ne.jp/aterai/20060502 てんぷらメモ@はてな]に移動しました。
- [http://d.hatena.ne.jp/aterai/searchdiary?word=%2a%5bSwing%20Hacks%5d 記事一覧]、[http://d.hatena.ne.jp/aterai/archive?word=%2a%5bSwing%20Hacks%5d タイトル一覧]

#twocolumn

* コメント [#w04556af]
Swing関係のコメントや、ネタのリクエストなどがあれば書き込んでみてください。
#pcomment