ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2014/12/12

Java/ClojureのSwingでWindows/Linux風のUIにする

 SwingのGUIを各OS固有のGUIに変更するコードです. どこで見つけたのか忘れたのですが, 常用しています. SwingのデフォルトのUIは, 変なグラデーションのボタンなど, あまり好ましい見た目ではないと思う人も多いかと思いますが, GUIを出現させる前に以下のコードを実行すると, OS固有のGUIを表示してくれます.

Java版
try {
  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException
        | IllegalAccessException | UnsupportedLookAndFeelException e) {
  e.printStackTrace();
}
JavaのversionができればClojureも似たようなものですが, コピペ用に.
Clojure版
(javax.swing.UIManager/setLookAndFeel
  (javax.swing.UIManager/getSystemLookAndFeelClassName))
プログラム・サンプル
package lookandfeel;
import javax.swing.*;

public class LookAndFeel {
  public static void main(String args[]){

    JOptionPane.showMessageDialog(null, "Swing GUI");
    
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException | InstantiationException
        | IllegalAccessException | UnsupportedLookAndFeelException e) {
      e.printStackTrace();
    }

    JOptionPane.showMessageDialog(null, "Windows GUI");
  }

}
以下, 実行結果.

 まず, Windowsで実行すると...
WindowsでのSwing
Windows風GUI

 同じコードをLinuxMintで実行してみても...
LinuxMintでのSwing

LinuxMint風GUI
と, こんな感じで, Mint風のGUIで表示してくれます.

2014/06/23

(最小?), Javaでテキストファイルをまとめて読み込む1行

Javaもバージョンアップと共に昔よりだんだん書きやすくなっているようです.

「作者の気持ち」以前に、揚げ足とる相手の最新状況くらい調べろ

という記事に, Java7のnioを使ったファイル出力の例があったので,
テキストファイル読み込みについて調べた時のメモ.

Reading, Writing, and Creating Files(Oracle, Java Tutorial)

を見ながら, 書いたJavaのファイル読み込みが以下のプログラム.

で, 例外とimport文を除けば, 1行で書けるようになったんですね.
Java7から導入されたFilesクラスで一気にフィアルを読み込めます.
"src/short.txt"の部分は任意のファイル名(パス)で,
"UTF-8"のところは,読み込むテキストファイルのエンコーディングです.
若干関数型言語っぽくなっているようにも見えます.
まあ, Clojureならslurp/spitでもっと簡単に書けるのですが......