Moderator: JIDE Support
JIDE Support wrote:Thanks. I need to do some further fix.
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.DefaultListCellRenderer;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;
import com.jidesoft.swing.JideComboBox;
/**
* Very primitive test example for preferredSize of a JideComboBox
*
* JFAST-6734
*
* @author olb 11/2021
*/
public class JideComboBoxtest {
public static void main(String[] args) {
// This text is not displayed completely
String [] items = {"Mein Text "};
JideComboBox cb = new JideComboBox(items);
// JComboBox cb = new JComboBox(items);
cb.setRenderer(new BorderListCellRenderer());
JFrame frame = new JFrame();
JPanel panel = new JPanel(new FlowLayout());
panel.add(cb);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
static class BorderListCellRenderer implements ListCellRenderer {
private DefaultListCellRenderer defaultRenderer;
public BorderListCellRenderer() {
this.defaultRenderer = new DefaultListCellRenderer();
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
JLabel renderer = (JLabel) defaultRenderer
.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
JPanel p = new JPanel(new BorderLayout());
p.add(BorderLayout.CENTER, new JLabel(value.toString()));
// ########################################################################
p.add(BorderLayout.EAST, new JLabel(new ImageIcon(loadImage("paste.gif"))));
// ########################################################################
return p;
}
}
// Load image as Ressource
public static byte[] loadImage(String iconPath) {
byte[] iconData=null;
try {
InputStream in = JideComboBoxtest.class.getClassLoader()
.getResourceAsStream(iconPath);
if (in == null) {
in = new FileInputStream(iconPath);
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int nextByte;
while ((nextByte = in.read()) != -1) {
bos.write(nextByte);
}
iconData = bos.toByteArray();
in.close();
} catch (IOException exc) {
System.out.println(exc);
}
return iconData;
}
}
Return to JIDE Common Layer Open Source Project Discussion (Community Driven)
Users browsing this forum: No registered users and 13 guests