KidsLovePC Contact Us
  Home   PHP  Graphics ASP  JavaScript   HTML  JAVA   Swing   Webtip  Lyric  Free sheet music  Ringtones
java,jtable,jtree,swing Return to JAVA table list

Best books about JAVA programming:

JAVA JTable show hide column

The following code show hide column. This example have 5 files:

HideColumnTableExample.java
ColumnButtonScrollPane.java
ColumnButtonScrollPaneLayout.java
LinesBorder.java
ArrowIcon.java

//Example modified from http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples2.html
/**
* @version 1.0 12/03/98
*/

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
import javax.swing.event.*;

 

/**
* @version 1.0 05/31/99
*/
public class ColumnButtonScrollPane extends JScrollPane {
Component columnButton;

public ColumnButtonScrollPane(JTable table) {
super(table);
TableColumnModel cm = table.getColumnModel();
LimitedTableHeader header = new LimitedTableHeader(cm);
table.setTableHeader(header);
columnButton = createUpperCorner(header);
setCorner(UPPER_RIGHT_CORNER, columnButton);
setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_ALWAYS);
ColumnButtonScrollPaneLayout layout = new ColumnButtonScrollPaneLayout();
setLayout(layout);
layout.syncWithScrollPane(this);
}

protected Component createUpperCorner(JTableHeader header) {
ColumnButton corner = new ColumnButton(header);
return corner;
}


public class LimitedTableHeader extends JTableHeader {
public LimitedTableHeader(TableColumnModel cm) {
super(cm);
}

// actually, this is a not complete way. but easy one.
// you can see last column painted wider, short time :)
// If you don't like this kind cheap fake,
// you have to overwrite the paint method in UI class.
public void paintComponent(Graphics g) {
super.paintComponent(g);
columnButton.repaint();
}
}


public class ColumnButton extends JPanel {
JTable table;
TableColumnModel cm;
JButton revealButton;
JButton hideButton;
Stack stack;

public ColumnButton(JTableHeader header) {
setLayout(new GridLayout(1,2));
setBorder(new LinesBorder(SystemColor.controlShadow, new Insets(0,1,0,0)));

stack = new Stack();
table = header.getTable();
cm = table.getColumnModel();

revealButton = createButton(header, SwingConstants.WEST);
hideButton = createButton(header, SwingConstants.EAST);
add(revealButton);
add(hideButton);

revealButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
TableColumn column = (TableColumn)stack.pop();
cm.addColumn(column);
if (stack.empty()) {
revealButton.setEnabled(false);
}
hideButton.setEnabled(true);
table.sizeColumnsToFit(-1);
}
});
hideButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int n = cm.getColumnCount();
TableColumn column = cm.getColumn(n -1);
stack.push(column);
cm.removeColumn(column);
if (n < 3) {
hideButton.setEnabled(false);
}
revealButton.setEnabled(true);
table.sizeColumnsToFit(-1);
}
});

if (1 < cm.getColumnCount()) {
hideButton.setEnabled(true);
} else {
hideButton.setEnabled(false);
}
revealButton.setEnabled(false);
}

protected JButton createButton(JTableHeader header,
int direction) {
//int iconHeight = header.getPreferredSize().height - 6;
int iconHeight = 8;
JButton button = new JButton();
button.setIcon(new ArrowIcon(iconHeight, direction, true));
button.setDisabledIcon(new ArrowIcon(iconHeight, direction, false));
button.setRequestFocusEnabled(false);
button.setForeground(header.getForeground());
button.setBackground(header.getBackground());
button.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return button;
}
}
}


Sponsored link
Java JTabbedPane
JTabbedPane Preview List
Java JComboBox
JComboBox Preview List
Java JTooltip
JTooltip Preview List
Java JList
JList Preview List
Java JTree
JTree Preview List 1
JTree Preview List 2
JAVA JTable
JTable Preview List 1
JTable Preview List 2
JTable Preview List 3
JTable Preview List 4
JTable Preview List 5
JTable Preview List 6
JTable Preview List 7
JAVA Jslide
JSlide Preview List

 

 

Best books about JAVA programming from Amazon
Professional Java, JDK 5 Edition (Paperback Simply Java Programming: An Application-Driven Tutorial Approach (Paperback) Effective Java Programming Language Guide (Paperback) Head First Java, 2nd Edition (Paperback) Java : An Introduction to Problem Solving and Programming (4th Edition)

 

Printer Inkjet A Z lyricsLearn ChineseHome|PHP|Swing|HTML|JavaScript|ASP|JAVA|Forum|WebTip|Contact Us
Copyright © kidslovepc.com All rights reserved(new). Privacy|Copyright
designed by info@kidslovepc.com

Please help us cover the web site maintenance fee.
barcode scanner Thermal Printer credit card machine bar code printer