JCheckBox in table header
Hi,
I have a JTable, and I would like to put a JCheckBox in one of the columns table headers. I have searched the forums, and I believe I need to have an editor and renderer (i think)...and I have seen links that ref. examples (such as http://www2.gol.com/users/tame/swing/examples/JTableExamples9.html but they don't work anymore.
can someone help explain how I would put a checkbox in the header? I understand the renderers and editors (for the most part)...but how do i put them on table header??
thanks
Here is what I have now....but if i click semi-quickly on the column header...its like it doesn't catch the event in time. I can click on a regular checkbox as fast as I want, and it obviously catches my clicks..b/c i can see it check/uncheck over and over. Is there some way to make this work better, act smoother?
public class MyCheckBoxHeader extends JCheckBox implements TableCellRenderer, MouseListener {
private boolean mouseClicked;
private int currentColumn;
public MyCheckBoxHeader(JTable table) {
setHorizontalAlignment(SwingConstants.CENTER);
JTableHeader tableHeader = table.getTableHeader();
setBackground(tableHeader.getBackground());
setForeground(tableHeader.getForeground());
tableHeader.addMouseListener(this);
/* (non-Javadoc)
* @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
public Component getTableCellRendererComponent(
JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
currentColumn = column;
return this;
* Had to implement this so the cell would have the same border
* as the rest of the JTableHeader cells
/* (non-Javadoc)
* @see javax.swing.JComponent#paintBorder(java.awt.Graphics)
protected void paintBorder(Graphics g) {
g.setColor(Color.WHITE);
// top
g.drawLine(0, 0, getWidth(), 0);
// left
g.drawLine(0, 0, 0, getHeight());
g.setColor(Color.BLACK);
// right
g.fillRect(getWidth() - 1, 0, 2, getHeight());
// bottom
g.fillRect(0, getHeight() - 1, getWidth(), getHeight());
* Calls doClick(), because the CheckBox doesn't receive any
* mouseevents itself. (because it is in a CellRendererPane).
protected void handleClickEvent(MouseEvent e) {
JTableHeader header = (JTableHeader)(e.getSource());
JTable tableView = header.getTable();
TableColumnModel columnModel = tableView.getColumnModel();
int viewColumn = columnModel.getColumnIndexAtX(e.getX());
int column = tableView.convertColumnIndexToModel(viewColumn);
if (viewColumn == currentColumn && e.getClickCount() == 1) {
doClick();
repaint();
int rowCount = tableView.getRowCount();
for (int i = 0; i < rowCount; i++) {
tableView.getModel().setValueAt(new Boolean(isSelected()), i, 0);
public void mouseClicked(MouseEvent e) {
handleClickEvent(e);
// repaint the header to make sure the check is shown in the checkbox
((JTableHeader)e.getSource()).revalidate();
public void mousePressed(MouseEvent e) {
public void mouseReleased(MouseEvent e) {
public void mouseEntered(MouseEvent e) {
setCursor(Cursor.getDefaultCursor());
public void mouseExited(MouseEvent e) {
}any suggestions would be helpful...thanks
Similar Messages
-
Using a JCheckBox in the header of a JTable
I would like to know if it is possible to put a JCheckBox in the header of a column of a JTable.
In fact my table has several columns and its first column uses checkboxes to signify the seleced items in the table. I would like to have a checkbox in the header of this column so when it is checked, I select all possible items from the table (not all rows are selectable).
I have not seen any eample of putting something other than text in table headers. Does anyone know if this is possible and how to do it?I haven't tried check boxes but I use my own header renderers for other purposes. They are the same as cell renderers, so this sort of thing should work...
TableColumn tc = myTable.getColumnModel().getColumn(0);
tc.setHeaderRenderer(new CheckHeaderRenderer());
class CheckHeaderRenderer extends JCheckBox implements TableCellRenderer
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
// whatever
return this; -
Hi,
Is it possible to wrap the text of a table heading? I have found this question in many places always with a negative answer. Althought they are old posts and in main thread of this forum [POLL: Web Dynpro UI elements - enhancement proposals; in the first response Armin says that header text wrapping is now supported. Anyone knows how? I am working with NW7.0
Thanks,
Gabriel.Hi Gabriel,
The header text wrapping is now supported in the SAP CE 7.1 and SAP NW 7.0 EHP 1.
This a table column property.
For documentation on NW 7.0 EHP 1 please refer the following link:
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/c4/219041d3c72e7be10000000a1550b0/frameset.htm
Regards,
Kartikaye -
I am working no one SSRS my table headers are freeze cangrow property is false and my report is working perfect while rendering data on RDL and i want same report after exporting in Excel also , i want my table header to be freeze and wrap text property
to work after exporting in my report in excel but its not working ,is there any solution ? any patch ? any other XML code for different rendering ?Hi Amol,
According to your description, you find the wrap text property and fix column is not working after exporting into Excel. Right?
In Reporting Services, when exporting to excel file, it has limitation for textbox.
Text boxes are rendered within one Excel cell. Font size, font face, decoration, and font style are the only formatting that is supported on individual text within an Excel cell.
Excel adds a default padding of approximately 3.75 points to the left and right sides of cells. If a text box’s padding settings are less than 3.75 points and is just barely wide enough to accommodate the text, the text may wrap in Excel.
In this scenario, it supposed to be wrap text unless you merge cells. If cells are merged, word-wrap does not work correctly. If any merged cells exist on a row where a text box is rendered with the
AutoSize property, autosize will not work. For the Fix Data Property, it can't be working in Excel. These are features when exporting to Excel. We can't change it because it's by design.
Reference:
Exporting to Microsoft Excel (Report Builder and SSRS)
If you have any question, please feel free to ask.
Best Regards,
Simon Hou -
How to hide the table header if no data present
Hi
I need to hide the table header if no data present. Table has 5 column. if no any clolumn has data then this table section should not be display.
i am using <?if:count(Installation_Event_S19)= 0?> but this is not work for me.
Could you please help me out.
Thanks
Indrajeet KumarHi Priya,
Thank you very much !!! its work fine.
Thanks
Indrajeet Kumar -
How to add the Row count(number of rows in table) in the table header?
Hi,
I'm having a table. This table is viewed when i click on a search button.
<b>On the table header it should dynamically display the number of rows in the table, i.e., the row count.</b>
How to do this? could any one explain me with the detailed procedure to achieve this.
Thanks & Regards,
SureshIf you want to show a localized text in the table header, you should use the <b>Message Pool</b> to create a (parameterized) message "tableHeaderText" like "There are table entries".
Next, create a context attribute "tableHeaderText" of type "string" and bind the "text" property of the table header Caption UI element to this attribute.
Whenever the table data has changed (e.g. at the end of the supply function for the table's data source node), update the header text:
int numRows = wdContext.node<TableDataSourceNode>().size();
String text = wdComponentAPI.getTextAccessor().getText
IMessage<ComponentName>.TABLE_HEADER_TEXT,
new Object[] { String.valueOf(numRows) }
wdContext.currentContextElement().setTableHeaderText(text);
Maybe you want to provide a separate message for the case that there are no entries.
Alternatively, you can make the attribute calculated and return the header text in the attribute getter.
Armin -
Insert a new Dropdown UI-Element in a Table header
Hello,
i need to insert a Dropdown UI-element in a Table header, i was looking in the forum and the Web, BUT i didnt find anythinf that can help.
please schow me how can I insert a DropDown UI-Element in the Header.
thank you allHello,
You can normally create a table. Insert a table column and for the table column you need to give Dorpdown by Key / index as a cell editor.
Thanks,
Raju Bonagiri -
Table Header in freezed pane when exporting SSRS report to Excel
Hi,
I want table Header in freezed pane when exporting SSRS report to Excel.
Can I have the table header of tablix be present in freezed pane of excel.
Thanks,
Vivek SinghHi Vivek,
Please refer the following thread.
may be u get the answer.
How to freeze header pane in SSRS
Regards
msbilearning -
How can I right-align a table header?
Does anyone know a way to right-align a table header?
For example, in the table below I want the word 'Price' to be right-aligned. I could set the table's 'header renderer' to be a right-aligned DefaultTableCellRenderer, but then the header would look like a cell, not a header. Why can't swing be simple, like table.getColumn(1).setAlignment(Column.RIGHT) ????
public class TestTableHeader {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("Test");
Object[][] rowData = new Object[][] { { "General Electric", "$100.60" },
{ "IBM", "$5.20" }, { "Wal-mart", "$17.00" } };
JTable table = new JTable(rowData, new Object[] { "Name", "Price" });
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(DefaultTableCellRenderer.RIGHT);
table.getColumnModel().getColumn(1).setCellRenderer(renderer);
frame.getContentPane().add(new JScrollPane(table));
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}I modified your code an came up with a solution to the problem.
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class TestTableHeader {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("Test");
Object[][] rowData = new Object[][] {
{ "General Electric", "$100.60" }, { "IBM", "$5.20" },
{ "Wal-mart", "$17.00" } };
JTable table = new JTable(rowData, new Object[] { "Name", "Price" });
RightAlignRender right = new TestTableHeader().new RightAlignRender();
table.getColumnModel().getColumn(0).setHeaderRenderer(right);
table.getColumnModel().getColumn(1).setHeaderRenderer(right);
frame.getContentPane().add(new JScrollPane(table));
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
public class RightAlignRender extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object arg1, boolean arg2, boolean arg3, int arg4, int column) {
Component toReturn = table.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(table,
arg1, arg2, arg3, arg4, column);
switch (column) {
case 0:
((JLabel) toReturn).setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
break;
case 1:
((JLabel) toReturn).setHorizontalAlignment(DefaultTableCellRenderer.RIGHT);
break;
return toReturn;
} -
Table Header not getting repeated in subsequent pages
Hi,
I have a table and i want to table header to be repeated in subsequent pages but only till 2nd page the table header is repeated from the 3rd page onwards the table header is not repeated.
I have selected the Header Row in hierarchy and in Pagination tab for the header row i have checked the the check box Insert Header Row in Subsequent Pages.
After selecting the checkbox also table header is repeated only in 2 pages and not repeated after the second page.
My table hierarchy in form is :
TableSubform
---Table
HeaderRow
Row1
I am using Designer 8.0 and Acrobat Reader 8.1.2
Can you please help me in solving this issue.
Regards,
Bala Baskaran.sHi All,
I have selected the the check box Insert Header Row in Subsequent Pages then also the header is not getting flowed in subsequent pages only till 2nd page its getting flowed.
I have used table wizard to create table and i have made the table subform as flowed then also table header is not repeating in subsequent pages.
MainForm (Flowed)
TableSubform1(Flowed)
Table1
HeaderRow
Row1
TableSubform2(Flowed)
Table2
HeaderRow
Row1
I selected TableSubform1 and in Pagination tab OverFlow Leader dropdown i selected HeaderRow, the same i did for TableSubform2 also but the table header is not getting repeated in subsequent pages.
Please help me in solving this problem.
Regards,
Bala Baskaran.S -
Button not working in a table header
I have a custom view that implements table header. I have buttons in that view. The buttons used to work fine in SDK prior to 5. I moved directly to SDK 7, and the buttons stopped working. The action is not called anymore.
Any help will be appreciated.
ThanksWell, you have me stumped. I just replicated your code and it works fine for me:
- (void)doStuff:(id)sender
NSLog(@"Logo Touched!");
- (void)viewDidLoad {
// loadingView is a UIView that becomes the tableHeaderView
self.tableView.tableHeaderView = loadingView;
[loadingActivity startAnimating];
// setup a sample button (declared in header)
logoButton = [[UIButton alloc] initWithFrame:CGRectZero];
[logoButton setImage:[UIImage imageNamed:@"logo_webclip.png"] forState:UIControlStateNormal];
[logoButton addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside];
logoButton.tag = 100;
[loadingView addSubview:logoButton];
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
logoButton.frame = CGRectMake(50., 50., 64., 64.);
That calls my target everytime it's touched... are you remembering to call the superclass for each of your overrided methods in your custom UIView? The only difference between my quick test and yours is that I didn't subclass UIView -- I just used the UIView class directly. -
Vertical text in table heading
Hi,
I would like to save some space in some reports and I would like to change orientation of text in table heading.
Is it posible to have vertical text in table heading?
What I want is showed on this picture: [Vertical text|¨http://img179.imageshack.us/img179/234/obiverticaltext.jpg]
Thank you for some tips.Hi,
Go through this...will help you solve your requirement....http://blog.trivadis.com/blogs/andreasnobbmann/archive/2009/07/17/vertical-text-in-obiee.aspx
Use the same code Writing-mode: tb-rl; filter: flipv fliph; in custom css style of column heading.(column properties->column format->edit format icon beside column heading->css style)
Regards,
Srikanth -
Is there a way to make a "table header" a column instead of a row?
I am making a 508 compliant pdf from a predesigned indesign document that has many tables in it. The table that I am having problems with doesn't have it's table header as a Row at the top of the table but instead a Column that runs down the left side like this example:
To be read correctly in the pdf by screen readers the header needs to be included in the table but I don't know how to make a column a header, I have only found the option of making a row a header. Is there a way to do this or will I just have to retag and reorder the tags in the pdf after?
Thanks!@Joel – ah, now I begin to understand.
Slapbet wants to change the reading order in a two column table from:
Usually:
1 2
3 4
5 6
to:
1 4
2 5
3 6
If so, you need two separate tables:
One for column 1, one for column 2.
Grouped together, anchored in a text frame with the flowing text.
Could the every column is a single table construct work for you?
Or is it necessary for what ever reason (besides editing) to work with a single table?
A script could help to split every column to a single table, making a group and anchor it to the text flow.
Or did I misunderstand what the problem here is?
Uwe -
Hello,
I don't know why but I cannot place an image in one specific table-header.
It works fine in my table-cells but in the table-header only the text appears.
I thought i could place an image in a header, just like a text-string but that is not possible.
Does anyone know how to handle that problem???
Thank you so muchHi,
either you use table.getTableHeader().setDefaultRenderer(yourRenderer) to set one renderer for all columns or you use table.getColumnModel().getColumn(index).setHeaderRenderer(yourRenderer) to set a renderer for individual columns. -
How to add One Button to the Table Header.
Hi,
I would like to have few Table Header columns as Button and Other Table Header Columns as String. And each Button should have separate action. Please let me know, how can i implement this one.
Thanks
Mohando not cross post, this is a bad habit. now do you know about www.google.com. well this is a search engine, learn how to use it before you post. i got this link with this keyword search.
http://www.exampledepot.com/egs/javax.swing.table/pkg.html
http://forum.java.sun.com/thread.jspa?threadID=560605&tstart=15
hope this helps you
regards
Aniruddha
Maybe you are looking for
-
I just did an update on my iphone 4s, I think it was for the iOS 5.0.1. Afterwards it restarted and my screen was froze with the itunes logo and usb cord thingy. When I connected it to iTunes it says iTunes has detected an iPhone in recovery mode.
-
Dear Gurus, We have a requirement for SLOC1 to SLOC2 transfer. I know that 313-315 could easily solve this, but there's a particular requirement as follows: 1. Scan Stock Transfer Plan Print out (some kind of an order printout) 2. Barcode scanner
-
Deductible and Non Deductible Amount tax codes.
Dear MM Gurus, Since I have a little doubt even though if you are busy I had to disturb you, by asking this. Please make your time to give me some clarification. 01 EDECSHECS(DED) +VAT 4% - (Ded) 02 EDECSHECS( DED) +VAT 12.5% - (Ded) 03 E
-
Itunes shows importing but no songs appear on ipod
Hi, Can anyone help with this problem. ITunes shows that all songs are being automatically updated and comes up with the message that it is all complete. Then we check the ipod and there are no songs on there. Thanks Ed
-
Time Capsule not working. No internet.
Hi all. My TIme Capsule is not working. I have no internet. When I connect the wire directly from the modem to my laptop I get internet. When I connect the wire to Time Capsule and it goes through its start up mode it eventually shows me the green li