1 21 package com.sshtools.ui.swing; 22 23 import java.awt.BorderLayout ; 24 import java.awt.Color ; 25 import java.awt.Component ; 26 27 import javax.swing.BorderFactory ; 28 import javax.swing.Icon ; 29 import javax.swing.JLabel ; 30 import javax.swing.JPanel ; 31 32 37 public class IconWrapperPanel extends JPanel { 38 private JLabel iconLabel; 39 private JPanel westPanel; 40 private Component component; 41 42 48 public IconWrapperPanel(Icon icon, Component component) { 49 super(new BorderLayout ()); 50 westPanel = new JPanel (new BorderLayout ()); 52 westPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 4)); 53 westPanel.add(iconLabel = new JLabel (icon), BorderLayout.NORTH); 54 setOpaque(false); 56 add(westPanel, BorderLayout.WEST); 57 if(component != null) { 58 this.component = component; 59 add(component, BorderLayout.CENTER); 60 } 61 } 62 63 public void setComponent(Component component) { 64 invalidate(); 65 if(this.component != null) { 66 remove(this.component); 67 } 68 add(component, BorderLayout.CENTER); 69 this.component = component; 70 validate(); 71 repaint(); 72 } 73 74 public void setBackground(Color background) { 75 super.setBackground(background); 76 if(westPanel != null) { 77 westPanel.setBackground(background); 78 } 79 } 80 81 public void setForeground(Color foreground) { 82 super.setForeground(foreground); 83 if(westPanel != null) { 84 westPanel.setForeground(foreground); 85 } 86 } 87 88 public void setOpaque(boolean opaque) { 89 super.setOpaque(opaque); 90 if(westPanel != null) 91 westPanel.setOpaque(opaque); 92 } 93 94 public void setIcon(Icon icon) { 95 iconLabel.setIcon(icon); 96 } 97 98 public void setIconPosition(String position) { 99 invalidate(); 100 remove(westPanel); 101 add(westPanel, position); 102 validate(); 103 } 104 } | Popular Tags |