TOP →
Java →
Swing →
JScrollPane → This Page
JScrollPane@Swing サンプル08
概要
Java -
Swing -
JScrollPane のサンプルです。
・ヘッダを設定
解説
パネの上と左のヘッダにそれぞれルーラーを設定しています。
サンプルイメージ
サンプルソース
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingConstants;
/**
* JScrollPane サンプル08
* ・ヘッダを設定
*
* @author みっちー
*/
public class JScrollPane08 extends JFrame {
private static final long serialVersionUID = 1L;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JScrollPane08 frame = new JScrollPane08();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JScrollPane サンプル08");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 400, 300);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JScrollPane08() {
// アイコンを生成
ImageIcon icon = new ImageIcon("./img/orange.png");
JLabel label1 = new JLabel(icon);
// スクロールパネを生成
JScrollPane scrollPane = new JScrollPane(label1);
// ルーラーを生成
Ruler rulerH = new Ruler(SwingConstants.HORIZONTAL);
Ruler rulerV = new Ruler(SwingConstants.VERTICAL);
rulerH.setPreferredSize(new Dimension(icon.getIconWidth(), 10));
rulerV.setPreferredSize(new Dimension(10 , icon.getIconHeight()));
// ヘッダを設定
scrollPane.setColumnHeaderView(rulerH);
scrollPane.setRowHeaderView(rulerV);
// スクロールパネを追加
getContentPane().add(scrollPane);
}
}
/**
* ルーラークラス
*
* @author みっちー
*/
class Ruler extends JComponent implements SwingConstants {
private static final long serialVersionUID = 1L;
/** 方向 */
private int orientation = VERTICAL;
/**
* コンストラクタ
*/
public Ruler() {
}
/**
* コンストラクタ
*
* @param orientation 方向
*/
public Ruler(int orientation) {
this.orientation = orientation;
}
/**
* 描画
*
* @param g Graphics
*/
public void paintComponent(Graphics g) {
if (orientation == VERTICAL) {
for(int i = 5 ; i < getSize().height ; i += 5) {
g.drawLine(0 , i , 5 , i);
}
}
else {
for(int i = 5 ; i < getSize().width ; i += 5) {
g.drawLine(i , 0 , i , 5);
}
}
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/08/25 新規作成
TOP →
Java →
Swing →
JScrollPane → This Page