What's Here?
- Members: 300,131
- Replies: 825,116
- Topics: 137,272
- Snippets: 4,417
- Tutorials: 1,146
- Total Online: 1,889
- Members: 85
- Guests: 1,804
|
Auto Aligning columns of a JList which act as a single row
|
Submitted By: William_Wilson
|
|
Rating:

|
|
Views: 9,446 |
Language: Java
|
|
Last Modified: March 29, 2006 |
|
Instructions: self contained code example, the pattern should be evident |
Snippet
import java.io.*;
import java.awt.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class MultiColumn{
public MultiColumn(){
//create the frame and JList JPanel
jf = new aFrame();
//create element List array
addElements();
//set list for JList
list.setListData(columnData);
//create Renderer and dislpay
list.setCellRenderer(new MyCellRenderer());
}
public void addElements(){
//first number is number of rows, second is number of columns
columnData = new String[4][3];
//static setting of String[][]
columnData[0][0] = "William";
columnData[0][1] = "A";
columnData[0][2] = "Wilson";
//dynamic setting of String[][]
for(int i=1;i<4;i++){
columnData[i][0] = "William";
columnData [i ][1] = String. valueOf(i* 13);
columnData [i ][2] = ((Date)c. getTime()). toString();
}
}
public class aFrame extends JFrame{
public aFrame(){
super("Multi-Column JList Example");
getContentPane().add(new PanelBuilder());
// display rules
setResizable(true);
setLocation(250,50);
setBackground (Color. lightGray);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(650, 400);
setVisible(true);
}
private class PanelBuilder extends JPanel{
public PanelBuilder(){
setLayout(layout);
layoutConstraints.gridx = 0; layoutConstraints.gridy = 0;
layoutConstraints.gridwidth = 1; layoutConstraints.gridheight = 1;
layoutConstraints. insets = new Insets(1, 1, 1, 1);
layoutConstraints.weightx = 1.0; layoutConstraints.weighty = 1.0;
layout.setConstraints(scroll, layoutConstraints);
add(scroll);
}
}
}
MyCellRenderer() {
left.setOpaque(true);
middle.setOpaque(true);
right.setOpaque(true);
add(left);
add(middle);
add(right);
}
public Component getListCellRendererComponent (JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ){
left.setText(leftData);
middle.setText(middleData);
right.setText(rightData);
if(isSelected){
left.setBackground(list.getSelectionBackground());
left.setForeground(list.getSelectionForeground());
middle.setBackground(list.getSelectionBackground());
middle.setForeground(list.getSelectionForeground());
right.setBackground(list.getSelectionBackground());
right.setForeground(list.getSelectionForeground());
}
else{
left.setBackground(list.getBackground());
left.setForeground(list.getForeground());
middle.setBackground(list.getBackground());
middle.setForeground(list.getForeground());
right.setBackground(list.getBackground());
right.setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setFont(list.getFont());
return this;
}
}
public static void main (String args []){
MultiColumn jf = new MultiColumn();
}
}
/*I have found this useful on countless occassions, enjoy*/
/*William_Wilson. §*/
Copy & Paste
|
|
|
|