LotosLabo

プログラミング技術とか気になった情報を載せていきます

Java GUIプログラミング2

パネルの作成

JPanel panel = new JPanel();

パネルを作成します。パネルとは枠のようなものです。


パネルの色指定
panel.setBackground(Color.RED);

パネルの色を赤に指定


サンプル

import javax.swing.JFrame;
import javax.swing.JPanel; //パネル用
import java.awt.Container; //コンテナ用
import java.awt.BorderLayout; //枠専用
import java.awt.Color; //色用


public class Test extends JFrame{
public static void main(String args[]){
Test frame = new Test("タイトル");
frame.setVisible(true);
}

Test(String title){
setTitle(title);
setBounds(500,500,500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel p1 = new JPanel();//パネルを作成
p1.setBackground(Color.BLUE); //背景を青に

JPanel p2 = new JPanel();
p2.setBackground(Color.ORANGE); //背景をオレンジに

 Container contentPane = getContentPane();
    contentPane.add(p1, BorderLayout.NORTH); //上に配置
    contentPane.add(p2, BorderLayout.SOUTH); //下に配置
  }
}


実行結果はこのようになります


f:id:lo25131:20140219142017j:plain

長方形の描画

先ほどのパネルに枠線を指定します。

ボーダーラインの作成
BevelBorder border = new

ボーダーラインを立体的に
BevelBorder(BevelBorder.RAISED);

パネルにボーダーラインを指定
panel.setBorder(border);

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

public class Test extends JFrame{
  public static void main(String args[]){
    Test frame = new Test("タイトル");
    frame.setVisible(true);
  }

  Test(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250); //位置とサイズの指定
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //閉じる処理

    setLayout(new FlowLayout());

    JPanel p1 = new JPanel();
    p1.setPreferredSize(new Dimension(100, 50)); //新しくサイズ指定
    p1.setBackground(Color.BLUE);//背景色を青に

    JPanel p2 = new JPanel();
    p2.setPreferredSize(new Dimension(50, 100));
    p2.setBackground(Color.ORANGE); //背景色をオレンジに

    BevelBorder border = new BevelBorder(BevelBorder.RAISED); //枠線を立体的にする
    p2.setBorder(border); //枠線の指定

    Container contentPane = getContentPane();
    contentPane.add(p1);
    contentPane.add(p2);
  }
}


実行結果はこのようになります

f:id:lo25131:20140219142307j:plain


ラベルの生成

ラベルの作成
JLabel label = new JLabel();

初期値の設定
label.setText("ラベル");

インターフェースの指定
import javax.swing.JLabel; 


サンプル

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Container;
import java.awt.BorderLayout;

public class Test extends JFrame{
  public static void main(String args[]){
    Test frame = new Test("タイトル");
    frame.setVisible(true);
  }

Test(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    JLabel label1 = new JLabel("明日の予定は:");
    JLabel label2 = new JLabel();
    label2.setText("午後から授業");

    p.add(label1);
    p.add(label2);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}


実行結果

f:id:lo25131:20140219143517j:plain


ラベルの文字色、背景色の変え方


インターフェースの指定
import java.awt.Color;

背景色
label.setBackground(Color.RED);

文字色
label.setForeground(Color.BLUE);

※なお背景色を変えるときには、背景を非透明に設定しなければならない


透明非透明の切り替え
label.setOpaque(true);


(使いかた)

label.setBackground(Color.WHITE);
label.setForeground(Color.BLACK);
label.setOpaque(true);


ラベルフォントの変え方


インターフェースの指定
import java.awt.Font;

フォントを変える
label.setFont(new Font("MS ゴシック",Font.BOLD,15));

左からフォント名、フォントのスタイル、フォントサイズ


ラベルのサイズ

フォントのサイズではなく、ラベルのサイズの大きさを変更するとき


インターフェースの指定
import java.awt.Dimenstion;

ラベルのサイズの指定
label.setPreferredSize(new Dimension(200,200));


ラベルに枠線をつける

インターフェースの指定
import javax.swing.border.LineBorder;


枠線の作成
LineBorder border = new LineBorder(Color.BLUE,2,true));
label.setBorder(border);


文字列の位置


<水平方向>

LEFT   左詰め
CENTER  中央
RIGHT  右詰め
LEADING 左詰め(文字だけ表示)
TRAILING  右詰め

使いかた
label.setHorizontalAlignment(JLabel.RIGHT);



<垂直方向>

TOP 上
CENTER 中央
BOTTOM 下


使いかた
label.setVerticalAlignment(JLabel.TOP);

ラベル内での画像を表示


インターフェースの指定
import javax.swing.ImageIcon;


イメージを指定
ImageIcon icon = new ImageIcon("./sample.jpg");


イメージをラベルにつける
label.setIcon(icon);