- src.zip が全て403 Forbiddenでダウンロードできませぬ。 -- ten
- あ、いつからこんなことに…。しばらく別サイトにzipファイル置いておきます。
ttp://xxx.yyy.zzz/swing/src.zipを以下のように手動で変更してダウンロードしてください。ttp://xxx.example.com/xxx/xxx/src.zip面倒ですがちゃんと修正するまでよろしくお願いします。 -- aterai - かたじけない。これからもがんばってください。 -- ten
- PukiWikiの新しいバージョンで入った.htaccessがzipファイルを蹴ってました。11月頭からこの状態だったようです。修正できたと思います。 -- aterai
- まだうまくダウンロードできない場合は、ブラウザのキャッシュをクリアしてみてください。 -- aterai
- 一時サイトに置いていたソースなどを削除しました。 -- aterai
- あ、いつからこんなことに…。しばらく別サイトにzipファイル置いておきます。
- Bat Swing で迷い込む人がいるみたいなので誘導リンク バットでペンギン、Yetisports Pingu Throw -- aterai
- タブ上の文字をクリック(またはダブルクリック)して、編集(ここで入力されたデータを元にタブの内容を変更するという動作で使いたい)。(エクセルのタブの名前を変更する操作イメージってできそうでしょうか?) -- qtaro
- ネタありがとうございます。
Java SE 6 なら簡単そうなんですが、現状だとちょっと面倒かもしれません。でも出来ると思うし、ちょっと面白そうなんで、すこし試してみます。-- aterai - すこし手抜きで「文字列が長くなっても編集中のタブ長は固定のまま」ですが、Swing/EditTabTitleを作ってみました。 -- aterai
- 追記: JDK 6 版は、JTabbedPaneのタブにJTextFieldを配置してタイトルを編集 -- aterai
- ネタありがとうございます。
- こちらでこっそり来週のネタ候補などをメモしたり、
新しいネタを募集したりしています。←ネタ募集(なにかリクエスト)は、こちらに移動しました。 -- aterai - Mustang を JDK 6 に変更してまわっているけど、URLとかを変更するのが面倒で…orz -- aterai
- JPopupMunu(8) むにゅ? --
- 自分で書いておきながら笑ってしまいました。munuてなんやねんw (修正しておきます。ありがとうございました。) -- aterai
- ちょっとよらせてもらいました。。。swingの勉強中です@@ -- やじるし
- コメントありがとうございます。分かりづらいとか、もっと詳しい解説が必要な箇所があれば、突っ込みよろしくお願いします。 -- aterai
- いつも参考にさせてもらってます。イベントのつけ方が難しいですね--- -- やじるし
- どうもです。ここのサンプルではイベントの名前考えるのが面倒(^^;なので匿名インナークラスを多用してしまっています。きっちり勉強するならイベントリスナーのTutorialなどがおすすめです。Lesson: Writing Event Listeners (The Java™ Tutorials > Creating a GUI with JFC/Swing) -- aterai
- タスクバーに表示されないFrameを生成する事って可能なんでしょうか?SystemTrayと共に使う前提ですケド…。 -- bcg
- うーん、なんだか無理っぽいですね…。 -- aterai
- だとしたら、JDialogベースで無理矢理やる位しかなさそうですね…。 -- bcg
- なるほど、JDialogを使うのはいい方法かも。 -- aterai
- たびたびすいません。ドラッグアンドドロップで編集可能なJTreeをリクエストさせてください。Java6でこの辺りの機能が追加されたみたいなのですが、どこから手をつけていいのやら…。 -- bcg
- どもです。D&Dとかのコードを書くのが簡単になるとかならないという話をどこかの英文サイトで見た記憶があるのですが、何がどう簡単になるのかとか、JDK 6 で取り込まれたのかどうかなどは全然確認してなかったです(^^;。現在Swing/_JDK6以下にあるページをSwingに移動していこうと考えていて、2、3週新しいネタを探さなくてもいいし、ついでというか、JDK6に関連がありそうなのでJTreeなどのD&Dあたりも調べてみます。 -- aterai
- JDK6に関係あるのは、選択状態からそのままドラッグ開始できるようになったこと?
あまりコードを書くのは簡単になってないような、勘違いしてたかも…。-- aterai - あれま。手間の量自体は大して変らないですか…ちと残念。 -- bcg
- 単に分かっていないだけかもしれません。ここのソースコードがどこにあるのか探している状態ですし。 -- aterai
- TransferHandler が便利になっているのかな? DragGestureListener とかDragGestureRecognizer などをたくさん使わなくても良さそう。メモ: Drag List Demo -- aterai
- 結局TransferHandlerを使わないサンプルになってしまいました(´・ω・`)->Swing/DnDTree -- aterai
- リクエストに答えて頂き、ありがとうございました。なるほど…旧バージョンより短くはなってる…ように見えますね。 -- bcg
- こんにちはです。ダブルバッファの勉強をしていたら、swingでは不要だったんですね。どうりで、バッファを使わなくてもちらつかないわけだ・・・OT\ -- やじるし
- ども。でも自分もダブルバッファリングについて正確には理解できてないかもしれません(^^;。「Java SE 6 では、Swing は完全なダブルバッファリングを提供します。」とかもよくわかってないですし。(追記: 他のウィンドウに隠されているウィンドウが前面に表示されるときの速度が改善されたことのようです) -- aterai
- (笑)、真のダブルバッファリングを提供って書いてありますね。 -- やじるし
- JCheckBox の チェックボックスの部分だけ色を変える方法ってないでしょうか? -- ヤモ
- 長くなってしまったので、ここに貼り付けていたソースなどは、Swing/CheckBoxColorに移動しました。
- 早速の対応ありがとうございます。ソース実行してみましたが、私の文章があいまいだった為に思っていたような動作ではありませんでした。正確に言うと JCheckBox の レ点 の部分ではなく □ボックス の部分の色を変えたかったのです。checkboxObj.setBackground(Color.RED); などとやると、□ボックスの背後の領域まで赤くなってしまいます。これを何とか回避できないものかという疑問でした。 -- ヤモ
- 今日は、ヤモです。色々と提示して頂き、ありがとうございます!まだ消化しきれていないので、これからは教えて頂いた内容を元にして試行錯誤してみようと思います。Synthの記事に少しですが目を通しました。こちらも近いうちに試してみようと思います。 -- ヤモ
- 連休中に、サンプルを1.5以上対応に変更しようと思っています。 -- aterai
- あと、このコメントページもなんとかしたほうがいいかも…。 -- aterai
- test -- aterai
- こんにちは 私は 質問があります、教えていただきませんか。システムのデフォルトフォントを 取るために、どうしたほうがいいですか。 -- そうがい
- こんばんは。Swingコンポーネントのデフォルトフォントは、UIManager.getFont(Object key, Locale l)などで取得できるようです。Linuxなどで文字化けするようならNetBeans Wiki: FaqI18nLinuxAsianFontsなどが参考になるかもしれません。 -- aterai
- わかった、ありがとう ございました。でももし Swingコンポーネントのデフォルトフォントじゃなくて Windowsのデフォルトフォントを取得できますか。もう一つの問題があって UIManagerのput(key, value)メソッドについて 検索キーを指定するために keyを知らなければならないです、でも keyの値が たくさんありますよ keyの具体的な値のリストを教えていただきませんか。私は日本語が苦手です おわからないことがあったら ごめんなさい。 -- そうがい
- デフォルトのフォント(Serif、Sans-serif、Monospaced、Dialog、DialogInputといった論理フォント)が、各OSでどの物理フォントに割り当てられているかは、font.properties ファイルを見ると分かるのですが、Windowsでは、fontconfig.bfc というバイナリファイルになっているみたいで、どうもよく分かりません。 -- aterai
- keyの具体的な値のリストを取得する場合は、例えば以下のようなプログラムを実行する方法があります。 -- aterai
import java.util.*; import javax.swing.*; public class Test { public static void main(String[] args) { //for(Object o: UIManager.getLookAndFeelDefaults().keySet()) //System.out.println(o); for(Map.Entry<?,?> entry: UIManager.getDefaults().entrySet()) System.out.println(entry.getKey()); } }
- terai様は とてもすごいですね、いろいろ手伝ってくれて いつもありがとう。 -- そうがい
- こんにちわ、ヤモです。JTextField 等で指定した文字の入力を受け付けない、という事は可能でしょうか?キープレスしてもテキストボックスに文字が出ないといった感じにしたいと思っています。何か良い案をご存知でしたら教えて頂ければと思います。 -- ヤモ
- こんにちは。特定のキー入力だけ制限したい場合は、以下のようにInputMapを使用するのが手っ取り早いかもしれません。 -- aterai
//aが押されても何もしない textField.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("typed a"), "none");
- 数字だけとか、アルファベットだけ入力可で他は全部制限したいような場合は、Document、DocumentFilterで制限する方法があります。 -- aterai
- コピペなんか(゚ε゚)キニシナイ!なら、KeyListenerで強引にやってしまうのも…。 -- aterai
- 早々の対応ありがとうございます!色々ありますね。相応しい方法を調べて試してみますね。 -- ヤモ
- こんにちは。特定のキー入力だけ制限したい場合は、以下のようにInputMapを使用するのが手っ取り早いかもしれません。 -- aterai
- お早うございます。もし質問も受け付けて頂けるのであればお願いします。現在、画面Aから画面Bをモーダルダイアログで開き、画面Bから画面Cをモーダレスダイアログで表示しています。すると画面Cのボタンが押下出来ないという現象が起きています。大雑把な説明ですが、何かご存知であればお教え頂けないでしょうか。お願いします。 -- ヤモ
- 今試していたら、マウスクリックでは反応しないけど、Tabキーでフォーカスを当てて、Space押下だと動作する事が分かりました。全く持って意味不明です。。。 -- ヤモ
- 更に追加情報です。画面Bを先に閉じてしまえば、画面Cのボタンはマウスクリック可能になりました。うーん・・・ -- ヤモ
- 実行可能で、上記の現象が再現する短いサンプルなどがあれば、いろんな人が検証できるので有難いかも(OS、Javaなどのバージョンや動作環境などもあるとさらにうれしいです)。 -- aterai
- やっぱりそうですよね・・・でも今はそこまで用意出来そうに無い状況です。ごめんなさい。簡単に書くと JFrame->JDialog->JDialog という感じで、実行OSはXP、JAVAは1.4です。上の投稿、削除した方が良いでしょうか? -- ヤモ
- いや、消す必要はないと思います。時間できたらすこし試してみますね。 -- aterai
- https://ateraimemo.com/data/swing/modal-test.zip で上記の現象が再現する環境の人いますか? -- aterai
- 上記現象、まだ解決しておりません。Javaの道の掲示板に同じ質問を載せてみました。 -- ヤモ
- こちらの環境ではjavaのバージョンが違うせいか、modal-test.zip では現象を再現できないっす。もしヤモさんの環境で、modal-test.zip を試したとき上記現象は再現できるなら、こちらでも1.4を再インストールして確認するか、bug修正されていないか検索してみようかと思ってます。 -- aterai
- ページの表示を高速化するために
CSS
などを弄ってみました。表示がおかしくなる場合は、Shift+リロード(Shift+Ctrl+R)などで再読込してください。 -- aterai - ニ三日前から、サイト内検索が壊れていたのを修正しました。 -- aterai
- てんぷらメモ参考にさせていただいております。ところで、全てのwebstartのサンプルをためしたわけではないのですが、こちらの環境で起動しないのものがありました。。。mac osxの環境でみています。 jnlpファイルには、<java version="1.5+" />とあったのですが、 <j2se version="1.5+" />ということはないでしょうか.... -- nakawaka
- どうも。ご指摘ありがとうございます。<java>が導入されたのは、6.0から(JNLP ファイルの構文)みたいですね。このサイトでは1.5以上が対象なので、週明け頃に全部まとめて修正(<j2se>に戻す)しようと思っています。 -- aterai
- 1.6が必要なサンプルの場合は<java>のままで、1.5以上が対象の場合は<j2se>タグに修正しました。 -- aterai
- ありがとうございます!!早速、サンプルをためしていきたいと思います。 -- nakawaka
- IBM developerWorks へのリンク切れを修正。 -- aterai
- new Cursor(int) を Cursor.getPredefinedCursor(int) に置換。 -- aterai
- e.isPopupTrigger()を使ってJPopupMenuを表示している箇所(JDK 5 以前のソース)を、すべてsetComponentPopupMenuに変更。 -- aterai
- Swing/TextShiftOffsetのリンク切れを修正 -- aterai
- こんにちは JAVA プログラムの画面のHWND を取得する方を教えていただけませんか -- そうがい
- こんばんは。検索してみると、JDK 1.4 以上では JNI を使う必要があるみたいですね。JDK 1.6.0_04 + Microsoft Visual Studio .NET 2003\vc7 で、JNI Windowsでウィンドウハンドルを取得する - Memo of Masterの方法2に掲載されているソースをコンパイルしてみましたが、一応HWNDは取得できている?ようです。https://ateraimemo.com/data/swing/hwndTest.zip -- aterai
- コードをJNIでJFrameのHWNDを取得に移動。
- こんにちは。いつもてんぷらメモを参考にさせていただいています。 -- wasabi
- そこでなんですが、JFileChooserに「OK」、「CANCEL」ボタン以外のボタンを付ける方法を教えていただけないでしょうか?唐突ですみませんが、ネタの一つとして扱っていただければ幸いです。 -- wasabi
- こんばんは。どうもです。JFileChooserにボタンを追加するサンプルというと、(JDKをインストールした場所)/demo/jfc/FileChooserDemo/src/FileChooserDemo.java のWizardDialog(JDK 6 で追加された?)*1みたいな感じ?でしょうか。これは「OK」、「CANCEL」ボタンを削って、「Back」、「Next」なんかが追加されています。 -- aterai
- お早い回答ありがとうございます!まさにこんな感じです!demoを見るのを忘れていました; 今ソースを見ていましたがどうもWizardDialogにchooserを貼り付けているみたいですねww これで作業もはかどりそうです ありがとうございました。 -- わさび
- なによりです。JDKに付いてるデモやサンプルには良いモノのが多いと思うのですが、探しづらいとか、コードが巨大だったりとかであまり利用されてないのかもしれませんね。抜き出して紹介すれば、いいネタになりそうです(^^;。 -- aterai
- ありがとうございました! -- そうがい
- JEditorPaneに文字列を入力している時 Enterキーを押下の際には 改行せずに
JEditorPane
に何も挿入しません どうすればいいですか?教えていただきませんか -- そうがい - 上記の問題の補助内容です。
Eclipse
を使っている時System
を入力してから.
を入力すればPopupMenu
を表示されます その時Enterキーを押すとPopupMenu
に表示されているひとつのメソッドを.
の後に挿入されますが この機能は 実装する方法を教えていただけないでしょうか --- おはようございます。IDEなどのコード補完のようなイメージですかね。例えば、JComboBoxを使ってポップアップメニューをスクロールでは、Shift+Tabで、ポップアップリストを表示するようになっています。前の文字列をみてポップアップの内容を変更してやれば、実現できるかも? -- aterai
- ご回答ありがとうございました. -- そうがい
- Shift+Tabで、ポップアップリストを表示されている時には、IDEに入力できないようになりました、もし ポップアップリストを表示されている際には IDEに入力できてEnterキーを押すと
IDE
は改行せずに ポップアップリストの選択されているアイテムをIDE
に挿入します。その実現する方法を教えていただけないでしょうか -- そうがい- その動作?なら、SwingSet3の、
Text
、TextField
にあるJHistoryTextField.java
の方が参考になるかも。 -- aterai
- その動作?なら、SwingSet3の、
メモ: 現在、日本語版のページから、-- ateraiJDK 5.0 Update 15
などがダウンロードできない?動作・テスト環境など にある-- ateraiJDK 5.0
へのリンクを英語版ページに変更。- 修正されているようです。 -- aterai
src.zip
などを大量に更新したので、リンク切れなどがあれば連絡お願いします。 -- ateraiメモ: 現在、日本語版のページのリンクは、JDK 5.0 Update 16 になっているがダウンロードできない? JDK 5.0 Update 16? - Java Solution-- aterai- ぺたっ。サンプルや画像がいっぱいあってグッド!ぐっじょぶ! -- きたよ
- ども。画像、そろそろ重くなってきたので、ページ分割とかしたいなぁ。 -- aterai
- JTableで、セルの結合や、二段組みレイアウトにするのは可能でしょうか? -- わさびもち
- セルの結合は、
Multi-Span Cellがよく知られています。(JTableの?)二段組みはよく分からないです。隣のセルに文字列が流れるような組版なんでしょうか? -- aterai
- セルの結合は、
- お早い回答ありがとうございます。セルの結合が出来るなら、HTMLと同様の考え方で、二段組みも可能だと考えられます。 解説しているサイトなどはあるのでしょうか?もしなければ頑張って読みます... -- わさびもち
- 自分とわさびもちさんの考えている段組が、どうも食い違っているような感じがします(例えばセル結合とHTMLと段組の関係がよく分からないです)。参考になる画像などがあればいいのですが・・・。 -- aterai
- 私の考えていた段組みは、一つのレコードを複数行に表示するテーブルのことです。確かに、段組みというとWordなどでもある、二段組みなどになりますよね。すいません。 -- わさびもち
Google イメージ検索結果削除 のようなのをイメージしてました(^^;。セル内で複数行表示するだけなら、JTableのセル幅で文字列を折り返しが近いかも。 -- aterai
- 始めまして。 JScrollPaneで中身のコンポーネントの大きさを変更してからsetViewPositionをすると、場所によってちゃんと移動してくれないのですが、どうしてなのでしょうか? -- mogu
- はじめまして。移動というのがよく分かりません。カーソルキーとか、マウスでスクロールバーを動かしているのでしょうか?ちょっとしたサンプルがあるとなにか分かるかもしれません。 -- aterai
- サンプルをアップロードいたしましたhttp://www1.axfc.net/uploader/He/so/184421 DLキーはswingです ソースコードの冒頭に説明書いてあります -- mogu
- おはようございます。サンプルどうもです。canvasの方もscrollRectToVisibleでスクロールさせておくとうまくいっているようです。 -- aterai
//https://ateraimemo.com/data/swing/Sample.java public void zooming(double zoom) { double origzoom = this.zoom; this.zoom = zoom; Point p = spCanvas.getViewport( ).getViewPosition( ); //左上の座標 canvas.setPreferredSize( new Dimension((int)( PWIDTH * zoom ) , (int)( PHEIGHT * zoom ))); canvas.revalidate( ); // 左上の位置を拡大縮小した大きさでの位置にあわせる //<ins> Point pt = new Point( (int)( p.x * zoom / origzoom ) , (int)( p.y * zoom / origzoom )); canvas.scrollRectToVisible(new Rectangle(pt, spCanvas.getViewport( ).getSize())); //</ins> spCanvas.getViewport( ).setViewPosition(pt); }
- Swing/HandScrollもすこし更新してみました。JComponent#scrollRectToVisibleの代わりに、JViewport#setViewPositionを使用すると、中のViewの外までスクロールできるので、このあたりが拡大したときに影響していたのかも。 -- aterai
- おはようございます。サンプルどうもです。canvasの方もscrollRectToVisibleでスクロールさせておくとうまくいっているようです。 -- aterai
- しっかりと移動することができました ありがとうございます!一週間ほど試行錯誤してたのですが、scrollRectToVisibleは盲点に入ってて試していませんでした。本当にありがとうございました。 -- mogu
- 再度失礼します。scrollRectToVisibleで出来たと思ったのですが、今度は縮小のときに違う方向に飛んでしまうようになりました。ですが、setViewPositionの方は縮小は問題ないので場合わけでなんとかできました。解決の助けをいただきありがとうございました。 -- mogu
- Swing/_JFrameが壊れていたのを修正。 -- aterai
- swingを勉強してるのですが、パネルを作る際コードが長くなってしますので、それぞれにJPanelを継承したクラスを作りフレームに貼り付けたいのですがうまくいきません。こういうことはできないのでしょうか?また普通はこんなことしないのでしょうか? -- さと
- フレームへの貼り付けがうまくいかないとのことですが、何かエラーになるのでしょうか?一つのJPanelにコンポーネントを並べるのではなく、コンポーネントを複数のSubJPanelに分割して作成し、そられのJPanelを一つのMainJPanelにまとめて配置する( frame.getContentPane().add(new Hoge().getMainJPanel(), BorderLayout.CENTER) )のは、よくある手法だと思います。パネルに分けるときに「JPanelを継承」*2は、JPanelのメソッドをなにかオーバーライドするのでなければ、あまりやらないかもしれません。IDEなどを使えば、initComponents()とか適当なメソッドを作って、その中で設定していくようになっているのが多いような気がします。 -- aterai
- はじめまして。 eclipseでguiアプリケーションを作っています。リストの項目を追加、削除するプログラムをつくってみたのですが、動作はうまく動いてるんですが、最初実行したときに、フレームの中に何も表示されずに、マウスでフレームを触ると表示されるのです。これはコード上で問題があるのか、eclipse上で実行した場合の仕様(バグ?)なのでしょうか? -- yuu
- はじめまして。ソースを見ないとハッキリとは分からないのですが、以下に似たような動作?をするサンプルコードを置いておきます。このサンプルには、EDT(Event Dispatch Thread)の無視、JFrame#setVisible(true)の順番がおかしいといった問題があります。 -- aterai
import java.awt.*; import javax.swing.*; public class Test{ public static void main(String[] args) { //<XXX> createAndShowGUI(); //</XXX> //EventQueue.invokeLater(new Runnable() { // public void run() { // createAndShowGUI(); // } //}); } public static void createAndShowGUI() { JFrame frame = new JFrame(); //<XXX> frame.setVisible(true); frame.setSize(300,200); //or frame.pack(); frame.setLocationRelativeTo(null); //</XXX> frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.getContentPane().add(new JScrollPane(new JTree())); //frame.setSize(320,240); //or frame.pack(); //frame.setLocationRelativeTo(null); //frame.setVisible(true); } }
- このような現象を解消するには、<XXX>の内部をコメントアウトして、現在コメントアウトされている行を使うようにすると良いはず…です。 -- aterai
- はじめまして。ソースを見ないとハッキリとは分からないのですが、以下に似たような動作?をするサンプルコードを置いておきます。このサンプルには、EDT(Event Dispatch Thread)の無視、JFrame#setVisible(true)の順番がおかしいといった問題があります。 -- aterai
- Swingでアプリを作る際、同じDirにiniファイルを置いて、設定など読み込みます。JavaWebStart化する時、iniファイルはサーバ上にあるため、読み込めません。Jnlpに記述以外、何か方法がありますか?paramが多すぎて、jnlpに書き切れません。ご教示ください。 -- panda
- どんなparam?なのか分からないので、的外れかもしれませんが、iniファイルをソースコード(Hoge.java)と一緒にjarファイル内にアーカイブしておけば、Hoge.class.getResource("hoge.ini");など(参考: ClassLoaderでリソース(URL)を取得)で取得自体は簡単にできると思います。あとJavaの場合は、iniファイルではなく、Resourceファイルからメニューバーを生成のように.propertiesファイルを使う場合が多いので、そちらで検索すれば色々例が見つかるかもしれません。 -- aterai
- また、設定したいparamが、例えばユーザーが設定したWebStartアプリの起動位置、サイズなどの場合は、PersistenceServiceで読み込み、保存するのが便利です。 -- aterai
- 早速のご回答、ありがとうございました。Hoge.class.getResource("hoge.ini");まではできましたが、そのhoge.iniファイルを開いて、中身を取り出す方法が判っていません。即ち、FileReaderを使って、jar:file:/C:/tmp/Hoge.jar!/example/hoge.iniを開く方法が判りません。もう少しご教示いただけませんか?大変お手数をおかけしました。 -- panda
- 以下、手抜きのサンプルですが、こんな感じでしょうか? -- aterai
import java.io.*; public class Hoge { public static void main(String[] args) { try { // FileReader in = new FileReader( // new File(Hoge.class.getResource("hoge.ini").toURI())); // int ch; // while ((ch = in.read()) != -1) { // System.out.print((char)ch); // } // in.close(); BufferedReader br = new BufferedReader(new InputStreamReader( Hoge.class.getResourceAsStream("hoge.ini"), "UTF-8")); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } catch (Exception e) { e.printStackTrace(); } } }
- 以下、手抜きのサンプルですが、こんな感じでしょうか? -- aterai
- こんにちは、オペレーティングシステムのデフォルトフォントを取得する方法がありますか? -- そうがい
- こんにちは。「システムのデフォルトフォント」が、Windowsで「画面のプロパティ」「デザイン」「詳細設定」などで設定されるフォントを指すのなら、以下の要領で取得できると思います。(参考: Windows デスクトップ関連のプロパティーのサポート) -- aterai
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class Test { public static void main(String[] args) { for(String key:Arrays.asList( "win.frame.captionFont", "win.icon.font", "win.frame.captionFont", "win.menu.font", "win.messagebox.font", "win.frame.smallCaptionFont", "win.menu.font", "win.tooltip.font")) { System.out.println(Toolkit.getDefaultToolkit().getDesktopProperty(key)); } } }
- こんにちは。「システムのデフォルトフォント」が、Windowsで「画面のプロパティ」「デザイン」「詳細設定」などで設定されるフォントを指すのなら、以下の要領で取得できると思います。(参考: Windows デスクトップ関連のプロパティーのサポート) -- aterai
- 最近重いので、Swing Tipsを https://sites.google.com/site/javaswingtips/ などに移行できないか検証中。 -- aterai
- 書き込んでもらったコメントを移動するべきか?、あと、Syntax Highlight をどうするか…。 -- aterai
- google sites でも、prettify.js が使いたいけど、そのままだとCSSが使えない。Rhino(ScriptEngine) を使って、prettify.jsのprettyPrintOneを呼び出して、生成したタグ付きのソースコードをstr.replace("class=\"str\"", "style=\"color:#080\"");などとして、スタイルに置き換え。prettify.jsは最新のr120なら、ほぼそのままjsEngine.eval("var window={};var navigator=null;"); jsEngine.eval(new InputStreamReader(getClass().getResourceAsStream("prettify.js")));といった感じで使用できる。 -- aterai
- 「HTML ソースを編集」だけ使えば、なんとかなりそう? -- aterai
- このサイトもすこし軽くなるように?変更中 -- aterai
- 検索を一つにして、refererの書出しをやめてみましたが、すこしはましになった? ファイルの読み書きが遅い感じなので、アクセスカウンタも止めてしまったほうが良いかも。 -- aterai
- screenshotをpicasaに移動。uploadは自動で出来るけど、各ページで張り替えるのが手動なので…、すごい面倒。 -- aterai
- 手動は諦めて、ローカルで置換、FTPで全ページ更新する
予定。更新済み -- aterai Operaで、Swing/_JTableなどの表示間隔がおかしい。修正済み -- aterai- やっぱり重いので、XREA内でのサーバ移転しました。ついでに画像などはpicasaに移動(src.zip内からは削除)、アクセスログなどは削除などしたら、ディスク使用容量が50M以下になってすこしびっくり。 -- aterai
- 右上のカスタム検索、元に戻してみました。 -- aterai
Googleカスタム検索の調子が悪い?ので、すこし重くなりますがcmd=searchの検索も利用できるように戻しました。 -- aterai- メモ: メンテナンスで 2012/03/18 (日) 午前0時 ~ 午前9時 は繋がらない予定 XREA 全サーバーの大幅な増強メンテナンスについて -- aterai
- すごく参考になるのですが、ソースファイルに説明のコメントを入れてもらえないでしょうか?よろしくお願いします。 -- 初心者
- こんばんは。既存サンプルのソースコードすべてに今からコメントを書き込んでいくのはちょっと無理ゲー臭いので、時間が出来れば優先順位の高そうなのから手を付けられたら…といったところでしょうか(もしくは誰か別の人にやってもらうとか)。「このサンプルからやってくれ」といった希望などはありますか? -- aterai
- お時間の空いてる時でかまいませんので、ゆっくり付け加えていってください、メソッドが何をやっているのかの説明だけでも、ありがたいですので。無理を言って申し訳ありません。 -- 初心者
- 了解です。publicなメソッドからボチボチやっていこうと思います。 -- aterai
- Typoを修正(
ディテクトリ->ディレクトリ)。 -- aterai - Swing/_SwingWorkerとSwing/_LookAndFeelを追加。 -- aterai
- いつも参考にしております。配置する部品点数が多く、paneが大きくなります。そこでpaneにスクロールバーを付けて、スクロールバーで左右上下に表示し切れない部品を表示するサンプルはありますか?お忙しいところ、ご教示ください。よろしくお願いいたします。 -- パンダ
- こんばんは。iPhoneのホームランチャーみたいなイメージなのでしょうか? 質問の意味を正しく理解できているか自信がないです。参考になりそうな図や動画などはありますか? -- aterai
- 画像メールで受け取りました。どうもです。JPanelをアコーディオン風に展開が近い感じがします。サンプル: https://ateraimemo.com/data/swing/AccordionPanelTest.java -- aterai
- 現在、Socket通信でサーバーに繋いでダウンロードしたデータを、JTableに追加表示していくだけのソースを作ってるのですが、追加した新規データがしたにどんどん追加されて見えなくなってしまうので、スクロールバーでいちいち下げないと新規データが見れない状態なのですが、新規のデータ行を常に表示させておくにはどのようにしたらいいか、なにかいい案がありましたらご教授おねがいします。 -- 初心者
- どうもです。任意のセルを可視状態にしたい場合、JTable#scrollRectToVisible(...)メソッドを使用することができます。 -- aterai
((DefaultTableModel)table.getModel()).addRow(...); //JTableに行を追加 int i = table.convertRowIndexToView(table.getRowCount()-1); //ソートしないならconvertRowIndexToViewは必要ない table.scrollRectToVisible(table.getCellRect(i, 0, true)); //追加した行の0列目のセル取得してscrollRectToVisibleで可視化
- どうもです。任意のセルを可視状態にしたい場合、JTable#scrollRectToVisible(...)メソッドを使用することができます。 -- aterai
- いけました! JTableに追加された行が常に下に表示されるようになりました、感謝ですm(__)m -- 初心者
- http://bugs.java.com/view_bug.do?bug_id=xxxxx がリダイレクトされなくなった?ので、https://bugs.openjdk.java.net/browse/JDK-xxxxx に置換。 -- aterai
- http://java.sun.com/docs/books/tutorial/uiswing/ を、https://docs.oracle.com/javase/tutorial/uiswing/ に置換 -- aterai
- jtableにデータベースのレコードを表示・更新・追加・削除といったサンプルってお願いできないでしょうか? -- 今さらSwingで
- こんばんは。どのデータベースを用意するか…などで動作するサンプルを作成するのは難しいと思います。データベースは自前で用意するなら、
Access Database
などを使うサンプルでTable From Database « Java Tips Weblog、このサイトではHibernate
とRowFilterでJTableのページ分割で表示を行うサンプルTablePaginationLoadingTest(テストしていない)などが参考になるかもしれません。 -- aterai
- こんばんは。どのデータベースを用意するか…などで動作するサンプルを作成するのは難しいと思います。データベースは自前で用意するなら、
- Postgresql接続はできているのですが、defaulttablemodelが雛形のようなもの?あと、modelとabstracttablemodel をどう使えばいいのか?そのへんの関係が良く理解できません。 -- 今さらSwingで
TableModel
がインタフェース、AbstractTableModel
は文字道理、TableModel
をimplements
するAbstract
クラス(抽象クラス)です。これを継承して独自のモデルを作成する場合は、各データを配列やリストなどで保持するようし、setValueAt(Object value, int row, int col)
などのメソッドを実装する必要があります。DefaultTableModel
は、AbstractTableModel
を継承し、new Table()
で自動的に使用されるデフォルトのTableModel
です。個人的には手っ取り早いので、DefaultTableModel
をよく使用しています。詳しくは How to Use Tables (Creating a Table Model)が参考になります。 -- aterai
- Swing/_JScrollPaneに入れるべきサンプルを、なぜかSwing/_JProgressBarに挿入していたので修正。 -- aterai
- いつもお世話になっております。C言語のヘッダーファイルの中で、#ifdef 開発環境の定数 #else 本番環境の定数 #endifと定義し、Makefileでは-Dオプションで、開発・本番の環境変数を切り替え、ソース(*.c)コンパイルできます。Javaではbuild.xmlどのように書けば、実現できますか?ご多忙の中、ご教示をお願いいたします。 -- tiger
- こんにちは。本番環境でテスト用のメッセージを出力したくないなどの場合は、
Java
だとLogging API
Java ロギングテクノロジを使うのが一般的だと思います。どうしてもAntを使用するなら、How to do Conditional Compilation with Java | Java.netのようにフィルタを使ってコメントアウトするのはどうでしょうか。Javaにcpp(C/C++プリプロセッサ)を使ってみるなども組み合わせられるかもしれません。 -- aterai - あとでこのコメントはAntに移動する予定です。 -- aterai
- こんにちは。本番環境でテスト用のメッセージを出力したくないなどの場合は、
new Font("Monospace", ...)
といったtypoがあったので、Font.MONOSPACED
などの定数を使用するように修正。 -- aterai- メモ:
Adsense
を非同期のにしたら、Opera 12.16
で読み込みが終わらない? -- aterai - メモ:
Chrome 28.0.1500.52 Ubuntu 13.04
などで、ページが真っ黒(または変な矩形が表示)になって操作不能になる場合がある。chrome://plugins/
でプラグインを無効にすると治ったみたいだけど、どれが原因だったのかは不明。Chrome 30.0.1568.0 devだと、
Adobe Flash Player - バージョン:11.2 r202
か11.8.800.97
を無効にする? (再発したので他にも原因がありそう) -- aterai Ctrl+C
などを、Ctrl+Cに置換。CSS
はStack Overflow
のものをそのままコピーしたので、すこしズレている。あとで修正。 -- aterai- 閉じるボタン付きのJTabbedPaneの解説役に立ちました。ところで、サンプル群のライセンスはどうなっているのでしょうか。 -- daikanyama
- こんばんは。すべてのソースコードを丸ごと全部引用する場合などは、google codeにホスティングする関係で、
MIT License
にしています。が、通常はMainPanel.java
などのクラス名まで同じにして使うことなどありえないわけで、一部を参考にして抜き出して使用するなら、ライセンスも保証も無しでと言うことにしています。 -- aterai
- こんばんは。すべてのソースコードを丸ごと全部引用する場合などは、google codeにホスティングする関係で、
- 最近やってた community.oracle.com のリンク変更が一応?完了。 -- aterai
- 現在SWINGでツールを制作してるのですが、ルックアンドフィールがNimbus固定になってるのを、ツールを起動状態でCDE/MotifやMetalに変更したり出来ないでしょうか?あとその状態をテキストなどに保存してツールを立ち上げた時に読み込むようにするにはどうすればいいでしょうか? -- 初心者
- あっ起動時の読込はなんとか出来ました。 -- 初心者
- まだ動作中の状態でのデザイン変更が出来ていないということです。m(__)m -- 初心者
- こんにちは。LookAndFeelの一覧を取得する(
SwingSet3
版)や、Look and Feelの変更(SwingSet2版)などのように、JMenuBar
で切り替える方法があります。 どちらも、UIManager.setLookAndFeel(someLookAndFeel);
でLookAndFeel
を設定して、SwingUtilities.updateComponentTreeUI(frame);
で、すべてのコンポーネントの更新を行なっています。 -- aterai
- こんにちは。LookAndFeelの一覧を取得する(
- あったのですね、見落としてました、申し訳ありません。 もう一つ質問させてください、今JTableでサーバーからのデータを逐一受け取ってTableに追加してるんですが、ある決まったキーワードを拾った時にその行の背景だけ、もしくはその行のカラムの背景だけを変更したいのですが、やり方がわかりませんご教授お願いします。 -- 初心者
- 背景というのは背景色ですm(__ __)m -- 初心者
TableCellRenderer
で追加された行の内容に応じた背景色を設定するのが簡単だと思います。例えば、JTableのセルにJCheckBoxを表示して行背景色を変更などでは、ある行の二列目の値がBoolean.TREU
の場合、その行の背景色をオレンジにしています。JTable
でのキーワードの検索は、JTableの検索結果をRowFilterとHighlighterで強調表示するが参考になるかもしれません。 -- aterai
- 参考にさせていただきます感謝。 -- 初心者