パーソナルツール
現在の場所: ホーム SwingとSWT チュートリアル コンポーネント編 Component - 1:1 対応 -
文書操作

Component - 1:1 対応 -

作成者 fujisaki 最終変更日時 2008年11月28日 01時51分

ここではコンポーネントを提供するクラスのなかで,Swing と SWT が 1:1 に対応するクラスについて,Swing から SWT への変換方法を説明します.

1:1 対応クラス

1:1 対応となるクラスは,次の表のとおりです.

1:1 対応クラス
機能 Swing SWT

JComponent Control
パネル JPanel Composite
スクロール領域 JScrollPane ScrolledComposite
スクロールバー JScrollBar ScrollBar
分割領域 JSplitPane SashForm
タブ JTabbedPane TabFolder
テーブル JTabel Table
ツリー JTree Tree
フレーム JFrame Shell
ラベル JLabel Label
コンボボックス JComboBox Combo
ファイルダイアログ FileDialog FileDialog
カラーダイアログ JColorChooser ColorDialog
メッセージダイアログ JOptionPane MessageBox

ここでは,パネルおよびラベルの変換方法について説明します.その他のクラスもパネルと同様に変換することができます.

Swing から SWT への変換方法

Swing

Swing ではラベルを表すクラスに JLabel クラスがあります.JLabel クラスの主なコンストラクタは次のようになっています.

  • public JLabel(String text)
    指定されたテキストのラベルを作成します.

これを new することによって,ラベルを作成できます.パネルを表すクラスとして JPanel クラスがあります. JPanel クラスの主なコンストラクタは,次のようになっています.

  • public JPanel()

ラベルをパネルに貼り付けるには,JPanel クラスの add() メソッドを使います.

  • public Component add(Component comp)

従って,パネルにラベルを埋め込む場合は,次のように記述します.

JLabel label = new JLabel("ラベル");

JPanel panel = new JPanel();

panel.add(label);

SWT

SWT では,ラベルを表すクラスに Label クラスがあります.ラベルクラスの主なコンストラクタ,メソッドは次のようなものがあります.

  • public Label(Composite parent, int style)
    parent で指定したコンポーネントにラベルを貼り付けます.style は,ラベルのスタイルを指定します.style には SWT クラスの定数を指定できます.
  • public void setText (String string)
    ラベルのテキストを指定します.
  • public void setParent(Composite parent)
    親となるコンポーネントを指定します.
  • public void setSize(int width, int height)
    ラベルのサイズを指定します.

SWT では,パネルを表すクラスに Composite クラスがあります.Composite クラスの主なコンストラクタは次のとおりです.

  • public Composite(Composite parent, int style)
    parent で指定したコンポーネントにパネルを埋め込みます.

ラベルをパネルに埋め込む場合は,次のように記述します.

Composite compo = new Composite(shell, SWT.EMBEDDED);

Label label = new Label(compo, SWT.CENTER);

Swing ⇒ SWT

パネルにラベルを埋め込む Swing の記述を SWT に変換すると,次のように変換できます.

 // Swing 

JLabel label = new JLabel("ラベル");

JPanel panel = new JPanel();

panel.add(label);
------->
// SWT 

Label label = new Label(dummy, SWT.NULL);

label.setText("ラベル");

Composite panel = new Composite(shell, SWT.EMBEDDED);

label.setParent(panel);