TreeCellRendererを試す

戻る




import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; /** * $Id: TreeCellRenderer.html,v 1.1 2009/06/22 16:12:01 kishi Exp kishi $ */ public class MyTest extends JFrame implements TreeCellRenderer { public Component getTreeCellRendererComponent( JTree tree , Object value , boolean selected , boolean expanded , boolean leaf , int row , boolean hasFocus ) { String text = value.toString(); JLabel label = new JLabel( text ); if ( leaf ) { if ( text.contains( "(MALE)" ) ) { label.setIcon( new ImageIcon( "male.gif" ) ); } if ( text.contains( "(FEMALE)" ) ) { label.setIcon( new ImageIcon( "female.gif" ) ); } if ( selected ) label.setForeground( Color.RED ); } return label; } public MyTest() { JPanel mainPanel = new JPanel(); String arr[] = { "山田太郎(MALE)", "小島裕子(FEMALE)" , "鶴岡正義(MALE)" }; Hashtable node = new Hashtable(); node.put( "メンバー" , arr ); JTree tree = new JTree( node ); tree.setCellRenderer( this ); // スクロールするペインを追加 JScrollPane scrPane = new JScrollPane(); scrPane.getViewport().setView( tree ); scrPane.setPreferredSize( new Dimension( 360, 480 ) ); mainPanel.add( scrPane ); // コンテナに各パネルを配置 Container container = this.getContentPane(); container.add( mainPanel, BorderLayout.CENTER ); } public static void main( String[] args ) { /* 自分自身を作成 */ MyTest viewer = new MyTest(); /* 終了処理を追加 */ viewer.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); /* サイズと位置を指定 */ viewer.setBounds( 10, 10, 400, 600 ); /* 実際に表示する */ viewer.setTitle( "TreeCellRendererを試す" ); viewer.setVisible( true ); } }
戻る inserted by FC2 system