Skip to content

Instantly share code, notes, and snippets.

@kimukou
Created April 5, 2011 07:07
Show Gist options
  • Save kimukou/903160 to your computer and use it in GitHub Desktop.
Save kimukou/903160 to your computer and use it in GitHub Desktop.
HighlighterDemo_Test.groovy
// HighlighterDemo Test
//
// refarence http://itpro.nikkeibp.co.jp/article/COLUMN/20110329/358840/?ST=develop&P=3
// http://griffon.codehaus.org/SwingxBuilder
//
@Grab(group='org.swinglabs', module='swingx', version='1.6.1')
@Grab(group='org.codehaus.griffon', module='swingxbuilder', version='0.1.7')
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.decorator.ColorHighlighter;
import org.jdesktop.swingx.decorator.FontHighlighter;
import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.decorator.HighlighterFactory;
import org.jdesktop.swingx.decorator.HighlightPredicate;
public class HighlighterDemo {
// テーブルに表示するデータ
private String[][] methods = [
["Highlighter", "addChangeListener", "ChangeListener", "void"],
["Highlighter", "getChangeLsitener", "", "ChangeListner[]"],
["Highlighter", "highlight", "Component, ComponentAdapter", "Component"],
["Highlighter", "removeChangeListener", "ChangeListener", "void"],
["HighlightPredicate", "isHighlighted", "Component, ComponentAdapter", "void"],
["HighlighterFactory", "createAlternateStriping", "", "Highlighter"],
["HighlighterFactory", "createAlternateStriping", "Color, Color", "Highlighter"],
["HighlighterFactory", "createAlternateStriping", "Color, Color, int", "Highlighter"],
["HighlighterFactory", "createAlternateStriping", "int", "Highlighter"],
["HighlighterFactory", "createSimpleStriping", "", "Highlighter"],
["HighlighterFactory", "createSimpleStriping", "Color", "Highlighter"],
["HighlighterFactory", "createSimpleStriping", "Color, int", "Highlighter"],
["HighlighterFactory", "createSimpleStriping", "int", "Highlighter"],
];
// カラム名
private String[] names = ["Class", "Method", "Arguments", "Return"];
public HighlighterDemo() {
JFrame frame = new JFrame("Highlight Demo");
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(560, 320);
frame.add(new JScrollPane(createTable()));
frame.setVisible(true);
}
private JXTable createTable() {
DefaultTableModel model = new DefaultTableModel(methods, names);
JXTable table = new JXTable(model);
// 表示するデータに合せてカラム長を設定する
table.packAll();
// ハイライトの設定
/*
// 1行ごとに色を変化させるHighlighter
Highlighter highlighter
= HighlighterFactory.createSimpleStriping();
// テーブルにHighlighterを設定する
table.setHighlighters(highlighter);
*/
/*
// 背景色を灰色にする
Highlighter highlighter
= new ColorHighlighter(Color.LIGHT_GRAY,
Color.BLACK);
// テーブルにHighlighterを設定する
table.setHighlighters(highlighter);
*/
/*
// 1行ごとに色を変化+マウスオーバ時に行の色を変化させる
table.setHighlighters(
HighlighterFactory.createSimpleStriping(),
new ColorHighlighter(
HighlightPredicate.ROLLOVER_ROW,
new Color(0x51, 0x72, 0x93), Color.WHITE));
*/
/*
// 1行ごとに色を変化させる
table.setHighlighters(
new ColorHighlighter(HighlightPredicate.EVEN,
Color.WHITE, Color.BLACK),
new ColorHighlighter(HighlightPredicate.ODD,
new Color(0xd1, 0xe6, 0xfc), Color.BLACK));
*/
// 1行ごとに色を変化+マウスオーバ時に色を変化させる
// 選択時にフォントを太字にする
table.setHighlighters(
HighlighterFactory.createSimpleStriping(),
new ColorHighlighter(
HighlightPredicate.ROLLOVER_ROW,
new Color(0x70, 0x90, 0xA3), Color.WHITE),
new ColorHighlighter(
HighlightPredicate.ROLLOVER_COLUMN,
new Color(0x70, 0x90, 0xA3), Color.WHITE),
new ColorHighlighter(
HighlightPredicate.ROLLOVER_CELL,
new Color(0x31, 0x52, 0x73), Color.WHITE),
new FontHighlighter(
HighlightPredicate.IS_SELECTED,
new Font(Font.SANS_SERIF, Font.BOLD, 13)));
return table;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new HighlighterDemo();
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment