我想在jtree里实现一个item有这样的样式:选择框+图片+文字
选择框+文字已经实现了,图片要怎么加进去呢?请指点指点
选择框+文字已经实现了,图片要怎么加进去呢?请指点指点
解决方案 »
- JAVA环境变量
- java Socket
- 请问String和String Buffer的区别
- 工作流具体是个什么概念 ?
- new Socket() 建立连接时间太长
- 请问,我想用JAVA做个服务器,用VB做客户端,该如何实现?
- jsp+bean结构,在jsp网页中做了个form,在form被submit之后,我想在bean中实现页面的跳转,请教如何实现
- 请问各位:如何编译Java的程序。多谢!
- applet的使用
- 热心的masterz(),applet的键盘事件又遇到新问题请进来看看,谢谢
- 为什么我用FileWriter输出大文件时出现NullPointException?
- 新人分少,望赐教~
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;public class Frame1 extends JFrame
{ JPanel contentPane;
ImageIcon imageicona = new ImageIcon("10-1.jpg");
ImageIcon imageiconb = new ImageIcon("10-2.jpg");
ImageIcon imageiconc = new ImageIcon("10-3.jpg");
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
BorderLayout borderLayout2 = new BorderLayout(); JLabel jLabel1 = new JLabel("A",imageicona,JLabel.LEFT);
JLabel jLabel2 = new JLabel("B",imageiconb,JLabel.LEFT);
JLabel jLabel3 = new JLabel("C",imageiconc,JLabel.LEFT);
//JLabel [][] j = {{jLabel1,jLabel2,jLabel3},{jLabel2}};
JTree jTree1 = new JTree(getD()); //Construct the frame
public Frame1()
{
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try
{
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception
{
//setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
jPanel2.setLayout(borderLayout2);
/*
jLabel1.setText("jLabel1");
jLabel2.setText("jLabel2",imageiconb,JLabel.LEFT);
jLabel3.setText("jLabel3",imageiconc,JLabel.LEFT);
*/
contentPane.add(jPanel1, BorderLayout.NORTH);
jPanel1.add(jLabel3, null);
jPanel1.add(jLabel2, null);
jPanel1.add(jLabel1, null);
contentPane.add(jPanel2, BorderLayout.CENTER);
jPanel2.add(jScrollPane1, BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTree1, null); MyDefaultTreeCellRenderer renderer = new MyDefaultTreeCellRenderer();
// renderer.setLeafIcon(imageiconc);
jTree1.setCellRenderer(renderer); }
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
System.exit(0);
}
} private TreeModel getD()
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("A");
DefaultMutableTreeNode p,q;
p = new DefaultMutableTreeNode("B");
q = new DefaultMutableTreeNode("C");
q.add(new DefaultMutableTreeNode("D")); root.add(p);
root.add(new DefaultMutableTreeNode("X"));
p.add(q); return new DefaultTreeModel(root); }
}package untitled5;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.Component;
import javax.swing.tree.DefaultTreeModel;public class MyDefaultTreeCellRenderer extends DefaultTreeCellRenderer
{ public MyDefaultTreeCellRenderer()
{
}
public static void main(String[] args)
{
MyDefaultTreeCellRenderer myDefaultTreeCellRenderer1 = new MyDefaultTreeCellRenderer();
} public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
{
super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
// node.setIcon(new ImageIcon("10-1.jpg"));
/*
String tmp = node.toString();
System.out.println(row);
if (tmp.equals("A"))
this.setIcon(new ImageIcon("10-1.jpg"));
else if (tmp.equals("B"))
this.setIcon(new ImageIcon("10-2.jpg"));
else if (tmp.equals("C"))
this.setIcon(new ImageIcon("10-3.jpg"));
else if (tmp.equals("D"))
this.setIcon(new ImageIcon("10-1.jpg"));
*/
switch(node.getLevel() )
{
case 0 : this.setIcon(new ImageIcon("10-1.jpg"));
break;
case 1 : this.setIcon(new ImageIcon("10-2.jpg"));
break;
case 2 : this.setIcon(new ImageIcon("10-3.jpg"));
break; }
return this;
}}