1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
package test;
import java.awt.*;
import javax.swing.*;
public class SharedImagePanel extends javax.swing.JPanel implements ListCellRenderer {
private Color selectedBackColor;
private Color normalBackColor;
public SharedImagePanel() {
selectedBackColor = new Color(73, 196, 255);
normalBackColor = getBackground();
initComponents();
}
public java.awt.Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (isSelected) {
setBackground(selectedBackColor);
} else {
setBackground(normalBackColor);
}
ImageIcon img = (ImageIcon) value;
jLabel1.setIcon(img);
nameLabel.setText(img.toString());
return this;
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS));
setBorder(new javax.swing.border.EtchedBorder());
setMaximumSize(new java.awt.Dimension(100, 114));
setMinimumSize(new java.awt.Dimension(100, 114));
setPreferredSize(new java.awt.Dimension(100, 118));
jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.X_AXIS));
jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204)));
jPanel1.setMaximumSize(new java.awt.Dimension(90, 90));
jPanel1.setMinimumSize(new java.awt.Dimension(90, 90));
jPanel1.setOpaque(false);
jPanel1.setPreferredSize(new java.awt.Dimension(90, 90));
jLabel1.setDoubleBuffered(true);
jLabel1.setMaximumSize(new java.awt.Dimension(88, 89));
jLabel1.setMinimumSize(new java.awt.Dimension(88, 89));
jLabel1.setPreferredSize(new java.awt.Dimension(88, 89));
jPanel1.add(jLabel1);
add(jPanel1);
jPanel2.setMaximumSize(new java.awt.Dimension(100, 28));
jPanel2.setMinimumSize(new java.awt.Dimension(100, 28));
jPanel2.setOpaque(false);
jPanel2.setPreferredSize(new java.awt.Dimension(100, 28));
nameLabel.setForeground(new java.awt.Color(51, 51, 51));
nameLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
nameLabel.setDoubleBuffered(true);
nameLabel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
nameLabel.setMaximumSize(new java.awt.Dimension(20, 28));
nameLabel.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
jPanel2.add(nameLabel);
add(jPanel2);
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JLabel nameLabel;
// End of variables declaration
/** Self-test main.
* @param args Arguments from the command line.
*/
public static void main(String ...args) {
DefaultListModel iconListModel = new DefaultListModel();
for (int i = 0; i < 5; i++) {
ImageIcon icon = new ImageIcon(i + ".png");
iconListModel.addElement(icon);
}
JList iconList = new JList(iconListModel);
iconList.setCellRenderer(new SharedImagePanel());
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(iconList));
frame.setSize(150, 200);
frame.setVisible(true);
}
} |
Partager