Swing の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing へ行く。
- Swing の差分を削除
--- title: Java Swing Tips keywords: [Java, Swing, SSCCE, MCVE] hreflang: href: https://java-swing-tips.blogspot.com/ lang: en description: ソースコード付きの小さな Java Swing アプリケーションを例にしてGUI プログラム作成のコツなどを解説 author: aterai pubdate: 2003-09-25 --- このページ以下では、ソースコード付きの小さな`Java Swing`アプリケーションを例にして`GUI`プログラム作成のコツなどを解説しています。 &ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQslJy3MxYI/AAAAAAAAAts/xrxOCvbp-0A/s800/screenshots.png); #contents * Swing [#about] `Swing`は`GUI`(グラフィカル・ユーザ・インタフェース)を作成するための`Java`標準のコンポーネントセット(ライブラリ、`UI`ツールキット)です。 RIGHT:[https://docs.oracle.com/javase/tutorial/uiswing/start/about.html About the JFC and Swing (The Java™ Tutorials)] * Latest Articles [#whatsnew] - 2025-04-14 #swingdescription(Swing/CursorEndAction,JTextAreaのキャレットを右端の折り返し位置、改行記号位置の順に移動する,JTextAreaのキャレット移動アクションを表示上での右端の折り返し位置、その次に改行記号位置の順番で遷移するよう設定します。,https://drive.google.com/thumbnail?id=1tYpLg5fssmJ-s25V6xB7KDeP1VDXNHfE) - 2025-04-07 #swingdescription(Swing/DarkMode,JEditorPaneのStyleSheetをLight・Darkテーマに合わせて切り替える,JEditorPaneのStyleSheetを起動時のシステムテーマがLightかDarkかなどに応じて切り替えるよう設定します。,https://drive.google.com/thumbnail?id=1rNhaj-mqEkjn2ntU4yNaMPj-DJOdzBfW) - 2025-03-31 #swingdescription(Swing/RolloverTreeOnlyWhenPopupHidden,JTreeに設定したJPopupMenuが非表示の場合のみJTreeの行をロールオーバー状態で描画する,JTreeにマウスカーソル下の行をロールオーバー描画する機能を追加し、JPopupMenuが表示されている場合はそのロールオーバー状態を維持するよう設定します。,https://drive.google.com/thumbnail?id=11qlW-Yy5eLtrsTD7qG4RTSNGM4x2E4Pe) - 2025-03-24 #swingdescription(Swing/TranslucentRoundedSelection,JTextComponentの文字列選択ハイライトのすべての角を丸めて半透明で描画する,JTextAreaやJEditorPaneなどのJTextComponentが使用するCaretに文字列選択ハイライトのすべての角を丸め、かつ半透明で描画するHighlightPainterを使用するよう設定します。,https://drive.google.com/thumbnail?id=1tragzwUpNp26U_PhnHyKNCzU9mtvNiZx) - 2025-03-17 #swingdescription(Swing/RowFilterComparisonType,JTableの行フィルタリングをRowFilter.ComparisonTypeで指定した比較方法で実行する,JTableの行フィルタリングをRowFilter.ComparisonTypeで指定した不等号、等号比較で実行するよう設定します。,https://drive.google.com/thumbnail?id=12CHq0T1SxA92camk4aI-2b-mjBkLqsby) - 2025-03-10 #swingdescription(Swing/SelectAllWhileKeepingVisibleRect,JTextAreaの全選択で表示領域を維持する,JTextAreaの複数行テキストをすべて選択したとき、末尾のキャレット位置までスクロールするのではなく、全選択前の表示領域を維持する全選択アクションを作成します。,https://drive.google.com/thumbnail?id=1vbNvUI8-oiwqmf9KVlVeoZCBpsmvZHMb) ** Update List [#changelog] - [https://ateraimemo.com/archive Archive] - [[Old Change Log>Swing/_ChangeLog]] * List of Tips [#listoftips] #twocolumn ** `javax.swing.JComponent` [#jcomponent] - [[JTable(72)>Swing/_JTable]] -- [[CellEditor CellRenderer(54)>Swing/_CellEditor]] -- [[JTableHeader TableColumn(48)>Swing/_JTableHeader]] -- [[TableRowSorter RowFilter(30)>Swing/_TableRowSorter]] -- [[JDK1.5.0(6)>Swing/_JTable1.5.0]] - [[JTree(62)>Swing/_JTree]] -- [[TreeCellEditor(11)>Swing/_TreeCellEditor]] -- [[TreeCellRenderer(13)>Swing/_TreeCellRenderer]] - [[JTextComponent(33)>Swing/_JTextComponent]] -- [[JTextField JPasswordField JFormattedTextField(48)>Swing/_JTextField]] -- [[JTextPane JEditorPane(41)>Swing/_JTextPane]] -- [[JTextArea(32)>Swing/_JTextArea]] -- [[JTextArea(33)>Swing/_JTextArea]] - [[JButton AbstractButton(37)>Swing/_JButton]] -- [[JCheckBox JCheckBoxMenuItem(29)>Swing/_JCheckBox]] -- [[JRadioButton JToggleButton ButtonGroup(22)>Swing/_JRadioButton]] - [[JComboBox(82)>Swing/_JComboBox]] - [[JTabbedPane(76)>Swing/_JTabbedPane]] - [[JScrollPane JViewport JScrollBar(69)>Swing/_JScrollPane]] - [[JMenuBar JToolBar JMenu JMenuItem JSeparator(62)>Swing/_JMenuBar]] - [[JList(55)>Swing/_JList]] - [[JPopupMenu(54)>Swing/_JPopupMenu]] - [[JFileChooser JOptionPane JColorChooser(53)>Swing/_JFileChooser]] - [[JLayer(51)>Swing/_JLayer]] - [[JFrame JDialog JWindow(47)>Swing/_JFrame]] - [[JLabel(45)>Swing/_JLabel]] - [[JToolTip(36)>Swing/_JToolTip]] - [[JInternalFrame JLayeredPane JDesktopPane(35)>Swing/_JInternalFrame]] - [[JSlider(34)>Swing/_JSlider]] - [[JProgressBar ProgressMonitor(33)>Swing/_JProgressBar]] - [[JSpinner(31)>Swing/_JSpinner]] - [[JPanel(22)>Swing/_JPanel]] - [[JSplitPane(20)>Swing/_JSplitPane]] #twocolumn ** `Others` [#others] - [[Graphics(67)>Swing/_Graphics]] - [[LayoutManager(55)>Swing/_Layout]] - [[Focus(45)>Swing/_Focus]] - [[Border(45)>Swing/_Border]] - [[Animation(44)>Swing/_Animation]] - [[LookAndFeel(42)>Swing/_LookAndFeel]] - [[Hyperlink Html(40)>Swing/_Hyperlink]] - [[Drag & Drop(34)>Swing/_DnD]] - [[Font(29)>Swing/_Font]] - [[SwingWorker(22)>Swing/_SwingWorker]] - [[File(14)>Swing/_File]] - [[Calendar(14)>Swing/_Calendar]] - [[Cursor(9)>Swing/_Cursor]] - [[TrayIcon(8)>Swing/_TrayIcon]] - [[Clock(6)>Swing/_Clock]] - [[Sound(5)>Swing/_Sound]] - [[Others(24)>Swing/_Others]] ** `JDK 6`, `JDK 7` [#jdk6jdk7] - [[JDK 6, 7 での Swing 新機能(38)>Swing/_JDK6]] ** `Screenshot` [#screenshot] - [https://drive.google.com/drive/folders/1ZiLGUiAv4olCMNUvlTWhkfrTCezfC6pa?usp=sharing スクリーンショット一覧(1127)] - [https://drive.google.com/drive/folders/1ZiLGUiAv4olCMNUvlTWhkfrTCezfC6pa?usp=sharing スクリーンショット一覧(1128)] #twocolumn * Download [#download] git clone https://github.com/aterai/java-swing-tips.git // - `Git`リポジトリを取得する場合: // git clone https://github.com/aterai/java-swing-tips.git // - `Subversion`で特定のディレクトリ以下のみ取得する場合: // # 例えばSurrogatePair以下のサンプルコードのみ取得する // svn co https://github.com/aterai/java-swing-tips/trunk/SurrogatePair * Licence [#licence] このページ以下のすべてのソースコードは[https://github.com/aterai/java-swing-tips GitHub]で、[https://github.com/aterai/java-swing-tips/blob/master/LICENSE.txt MITライセンス]のもと公開しています。 * Policy [#policy] - ''最も欲しいものはサンプル'' ([https://bn.dodgson.org/bn/2007/07/06/ あるチュートリアルの思い出 - Backnumbers: Steps to Phantasien]) -- 各ページからダブルクリックなどで実行可能な`JAR`ファイルをダウンロードが可能 - ''SSCCE'' ([http://sscce.org/ Short, Self Contained, Correct Example]) - ''MCVE'' ([https://stackoverflow.com/help/mcve How to create a Minimal, Complete, and Verifiable example - Help Center - Stack Overflow]) - [https://ja.stackoverflow.com/help/minimal-reproducible-example 最小限の・自己完結した・確認可能なサンプルコードの書き方 - ヘルプ センター - スタック・オーバーフロー] - すべての記事毎に、ソースコードや画像などのリソース、それらを[[Ant]]でコンパイル、実行するための`build.xml`をまとめた`zip`ファイルを添付 // - `JNLP`ファイルについて // -- [https://www.java.com/ja/download/help/signed_code.html ブラウザのJavaセキュリティ・メッセージの変更] // -- `7u51`から、署名が無い場合や、自己署名の場合は`JavaWebStart`で実行不可になったので、&ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TRD2KGq73BI/AAAAAAAAAwA/N8-6EXongNk/s800/webstart.png);ボタンをすべてのページから削除 * Environments [#environments] - [[動作環境、サンプルの実行方法などについて>Swing/_TestedEnvironments]] -- このサイトにあるサンプルの動作・テスト環境や`JDK`のダウンロード・利用方法、質問・不具合報告についてのお願いなど - [[Swing関係のバグについて>Swing/_Bug]] -- このサイトのサンプルの不具合ではなく`Swing`自体の不具合についてのメモ * Reference [#reference] - [[Java Swing 参考リンク>Swing/_Link]] -- 参考にしたサイトなどの一覧 * Comment [#comment] #comment - [[SPAM対策で閉鎖する前のコメントのログ>Comments/Swing]] - `forums.oracle.com`を、`community.oracle.com`に一括置換。 -- &user(aterai); &new{2014-11-25 (火) 17:57:58}; - `bugs.sun.com`を`bugs.java.com`に一括置換。 -- &user(aterai); &new{2014-11-30 (日) 17:57:58}; - `docs.oracle.com/javase/jp/8/api`を`docs.oracle.com/javase/jp/8/docs/api`に一括置換。 -- &user(aterai); &new{2015-03-09 (月) 17:57:58}; - 「`JTextArea`, `JTextPane`, `JEditorPane`」の一覧ページを、「`JTextArea`」と「`JTextPane`, `JEditorPane`」の二つに分離。 -- &user(aterai); &new{2016-04-07 (木) 17:57:58}; #comment