AUTO_RESIZE jtable set column width by column header
Do I need to use one of the AUTO_RESIZE methods, the TableColumnModel, or another method in order to set the default width for a column based on the width of the column header.
This is a simple question with an answer. In a JTable, how do you set the width of a column depending on the width of the column header?
Similar Messages
-
Hi all,
I have searched for jtable without column header... and if it´s possible how can I make?
thanksOverride JTable#configureEnclosingScrollPane() to do nothing or remove the table header manually ( jScrollPane.setColumnHeader(null) ) after you added the table to the scroll pane.
-
JTable - One Column Heading for Two Columns
Can you adjust the default JTable to have one column heading for two columns of data? Is there a simple span command? I've looked at the api for JTable and JTableHeader and didn't see anything, is there something I'm missing? Any help would be appreciated.
What i am trying to accomplish is have column 'E' span 2 columns.
This is my code thus far, however it give the error from my pryor message. I am pretty sure it is because I'm using and Object[][] and a String[] instead of Vectors. What corrections do I need to make in order for my goal of:
[ A ][ B ][ C ][ D ][ E ][ F ][ G ]
[ 1 ][ 2 ][ 3 ][ 4 ][5][6][ 7 ][ 8 ]
Object[][] data = new Object[ROWS][COLUMNS];
String[] columnNames = {"A","B","C","D","E","E","F","G"};
table = new JTable(data, columnNames);
table.setBackground(Color.white);
table.addKeyListener(this);
DefaultTableCellRenderer d = new DefaultTableCellRenderer();
d.setHorizontalAlignment(JLabel.CENTER);
table.setDefaultRenderer(table.getColumnClass(0),d);
for (int i = 0; i < table.getColumnCount(); i++){
TableColumn aColumn = header.getColumnModel().getColumn(i);
TableCellRenderer renderer = aColumn.getHeaderRenderer();
if (renderer == null) {
renderer = new DefaultTableCellRenderer(){
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
setHorizontalAlignment(JLabel.CENTER);
setText((value == null) ? "" : value.toString());
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
aColumn.setHeaderRenderer(renderer); -
How to set column heading dynamically?
Hi:
How can I set a column heading dynamically -by PL/SQL code- ?
Regards,Hi,
Create a formula field, and return desired heading depending on your conditions, and use that field as the column header.
Regards,
Manu. -
JTable howTo: column header = first column??
Hi,
i have created a JTable and with the TableColumnModel i have defined column headers. I now would like to have the first column of my table looking the same way like the column headers.
It shall look similar to what you have in Excel tables: A B C.... = Column headers and 1 2 3 ... = line numbers = first (not editable) column of the table.
I already tried to write an own table renderer which sets the color equal to the color of the headers but it still looks not equal :-( And there is no TableRowModel, right?
How can I achieve this appearance?
Thanks!!!
RobertHere is a simple example to get you started:
http://forum.java.sun.com/thread.jspa?forumID=57&threadID=624365 -
Print JTable with column heading
Hi,
I'm very new to this JTable. I'm try to print a Jtable using the print() function (from JDK 1.5)
JTable.print(JTable.PrintMode.FIT_WIDTH, new MessageFormat(
_tabledata.getTitle() ),
new MessageFormat("Page {0,number}"));
The problem I have is that some time it print and other time it doens't print. Also, if it doesn't print, then the program become very slow or not respond. Is that the probelm with the new JDK or am I doing something wrong?
Thanks for you help.Don't rely on JTable.print() methods too much.
Sadly Sun didn't think anyone would need to print anything from java so support was added late and half heartedly (programmers hate printing stuff)
If you are new to java you need to focus on something simpler than printing documents; unfortunatly printing is a tedious burdonsome task for experreineced developers
for example: learn how to output your data from a table into an HTML formate/file; you can build beautiful reports/printouts easily and view them in java components easily but you will probably want to print them from a browser.
Even if you find a class or two to help with your printing efforts on the net you will find you need to know many other generic complicated aspects of java to continue
Sean -
In JBuilder I have set column header captions in two lines, but now text (e.g. caption) is aligned left in the header cell.
What should I do to make my captions aligned center?
Thanks to everyone in advance!!!Difficult to reply.
Do you use a JBuilder extension, one of these db controls?
Then we should know your JBuilder version.
Since this is not a real Java question, you probably get best help at the Borland newsgroups for JBuilder. Look at their website - my experiences with that community are very fine.
If you however don't deal with JBuilder specifics, but with standard Java classes (I'm really not sure), then you probably speak about a JTable (?) and should ask this in the Swing forum. -
HELP Friends!!! How to set the width of columns of JTABLE?
Hi!
How to set the width of a particular column in JTable?
I tried using headerRenderers and though I'm able to set the color and font of the header (using getTableCellRendererComponent method)I can't change the size.
Pls some one help me..it's very urgent.
Thanks in advance.
Regards,
NavalJTable.getColumnModel().getColumn(i).setWidth(width). There are also setPreferredWidth, setMaxWidth and setMinWidth methods.
-
Set default width of columns in JTable
i have a JTable which has multiple columns.
the rows dont fit into the JTAble normally so i needed to add a horizontal scroll pane which was done by
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);the problem now is that the columns are squashed into table,
i want to be able to set the width of the columns, is there anyway of doing this?good tutorial on JTable
-
How can I set column width in JTable?
How can I set column width in JTable?
Also, read the JTable API before posting questions. You will find a link to the Swing tutorial on "How to Use Tables", which contains an example of doing exactly this.
-
How to set column width based on header width?
I have a column that will only hold 1 character. This is good, but I want the Column width to match the column header.
For example,
Currently I get:
select * from table;
I NAME
1 ROBERT
The problem is, I want the Column header spelled out (in this case it's just ID)
ID NAME
1 ROBERT
Better Yet,
if i did:
select ID "ID NUMBER", NAME "FIRST NAME" from table;
I'd like to see:
ID NUMBER FIRST NAME
1 ROBERT
(Centering the ID within the Column width would be good too, but that is "gravy")
Any thoughts? I've been trying:
COLUMN ID FORMAT A10 (which obviously didn't work!)
Thanks,
KSL.
Edited by: leonhardtk on Aug 23, 2010 11:55 AMIf you use tags it'll be easier to see what formatting effects you're talking about.
Does <a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10823/ch_six.htm"><tt>col id head "ID Number" format a9</tt></a> do what you want?
Edited by: William Robertson on Aug 23, 2010 6:50 PM -
JTable Column Header Problem, Please help me
What Listener I have to used to get the column index when user change the width of column header using mouse.
There is no listener that reports this activity. The TableColumnModelListener can only tell you if columns change position or are added/removed from the column model.
To detect changes, you will need to use a brute force mechanism, namely, to extend the JTableHeader class just a bit.
When the user clicks on a header to resize a column, there is a property in JTableHeader called ResizingColumn that has a type of TableColumn. It is set by the UI delegate when the drag operation starts to the column being resized. When the drag operation ends, the value of ResizingColumn is set to null. You might start with something like this:
JTable table = new JTable(...);
MyTableHeader header = new MyTableHeader();
table.setHeader(header);
table.setModel(...);
class MyTableHeader extends JTableHeader
public void setResizingColumn(TableColumn column)
super.setResizingColumn(column);
if (column != null)
System.out.println("Resizing Column #" + column.getModelIndex());
else
System.out.println("Resizing Ended");
}This will only work for user resizing of columns, not for sizes changed programmatically or by the automatic sizing features of the header.
Mitch Goldstein
Author, Hardcore JFC (Cambridge Univ Press)
[email protected] -
Dynamically setting column width doesn't work all the time
I wanted to dynamically set the width of a column in a JTable to be half of the width of a another column. This should happen whenever the frame is resized. But somehow I need to tell this twice to Java. If I don't then sometimes the column width isn't set new.
Is this a Java bug or what?
public void componentResized(ComponentEvent ce)
try
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMaxWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMinWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
// Again, or it won't work:
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMaxWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMinWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
catch(SQLException e)
}Is it possible that your call to
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMinWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
is altering the response created by
ref.table.getColumn(ref.rsmd.getColumnLabel(5)).setMaxWidth(ref.table.getColumn(ref.rsmd.getColumnLabel(1)).getWidth() / 2);
? Have you tried calling them once but in the other order? Or just calling the "setMaxWidth" call twice and leaving out the second "setMinWidth"?
Good luck... :) -
How to set column width in alvgrid
hi
how to set column width in alvgrid.
thanks.Hi,
Check this,
REPORT ztest.
DATA: BEGIN OF i_scarr_tab OCCURS 0.
INCLUDE STRUCTURE scarr.
DATA: END OF i_scarr_tab.
DATA: i_scarr LIKE TABLE OF i_scarr_tab WITH HEADER LINE,
w_scarr LIKE LINE OF i_scarr_tab.
DATA: o_grid TYPE REF TO cl_gui_alv_grid,
o_container TYPE REF TO cl_gui_custom_container.
DATA: lt_fcat TYPE lvc_t_fcat,
ls_layo TYPE lvc_s_layo,
ls_sort TYPE lvc_s_sort,
lt_sort TYPE lvc_t_sort,
ls_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
START-OF-SELECTION.
CALL SCREEN 9000.
*& Module status_9000 OUTPUT
text
MODULE status_9000 OUTPUT.
SET PF-STATUS '9000'.
SET TITLEBAR '9000'.
ENDMODULE. " status_9000 OUTPUT
*& Module user_command_9000 INPUT
text
MODULE user_command_9000 INPUT.
CASE sy-ucomm .
WHEN 'BACK' OR 'EXIT'.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
ENDMODULE. " user_command_9000 INPUT
*& Module init_9000 OUTPUT
text
MODULE init_9000 OUTPUT.
IF o_container IS INITIAL.
SELECT * FROM scarr INTO CORRESPONDING FIELDS OF TABLE
i_scarr UP TO 100 ROWS.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
Create a custom container control for ALV Control
CREATE OBJECT o_container
EXPORTING
container_name = 'CONTROL'.
Create a ALV Control
CREATE OBJECT o_grid
EXPORTING i_parent = o_container.
PERFORM build_field_catalgue.
ls_layo-sel_mode = 'A'.
CALL METHOD o_grid->set_table_for_first_display
EXPORTING
i_save = 'A'
i_default = 'X'
is_layout = ls_layo
CHANGING
it_outtab = i_scarr[]
it_fieldcatalog = lt_fcat
it_sort = lt_sort[].
ENDIF.
ENDIF.
ENDMODULE. " init_9000 OUTPUT
*& Form build_field_catalgue
text
--> p1 text
<-- p2 text
FORM build_field_catalgue .
DATA: ls_fcat TYPE lvc_s_fcat.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-cprog
i_internal_tabname = 'I_SCARR_TAB'
i_structure_name = 'SCARR'
i_client_never_display = 'X'
CHANGING
ct_fieldcat = ls_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE 'FCAT Error' TYPE 'I'.
EXIT.
ENDIF.
LOOP AT ls_fieldcat.
CLEAR ls_fcat.
ls_fcat-fieldname = ls_fieldcat-fieldname. "Fieldname
ls_fcat-ref_table = ls_fieldcat-tabname. "DDIC ref struct
ls_fcat-inttype = ls_fieldcat-inttype. "Data type
ls_fcat-outputlen = ls_fieldcat-outputlen. "Column width
ls_fcat-coltext = ls_fieldcat-seltext_m. "Column Header
ls_fcat-seltext = ls_fieldcat-seltext_m. "Column Desc
ls_fcat-ref_field = ls_fieldcat-ref_fieldname. "Reference field
ls_fcat-ref_table = ls_fieldcat-ref_tabname. "Reference table
CASE ls_fieldcat-fieldname.
WHEN 'LUGGWEIGHT' OR 'FORCURAM'.
ls_fcat-edit = 'X'.
ls_fcat-do_sum = 'X'.
WHEN 'URL'.
ls_fcat-no_out = 'X'.
WHEN OTHERS.
ls_fcat-edit = ' '.
ls_fcat-do_sum = ' '.
ENDCASE.
APPEND ls_fcat TO lt_fcat.
ENDLOOP.
ENDFORM. " build_field_catalgue
check the programs bcalv_grid*.
check this link for more detailed example.
http://www.supinfo-projects.com/fr/2005/alv_display_fr/2/
Regards
Sruthi -
Resize column width for JTable without column headers?
Hi,
I find that for me to resize columns of a JTable by using
mouse dragging, I MUST have column headers and then drag
column headers to resize them. Is my understanding correct?
Actually, I need to have a table without header columns.
How can I use mouse to resize column width by dragging?
The background for this request is that I am putting a
complex table as another table's column header and I hope to
be able to resizing the complex table by mouse dragging.
Thanks very much,
DavidHi,
I think you have mistake there. Try
<style type="text/css">
table.apexir_WORKSHEET_DATA td {
white-space:nowrap !important;
td[headers="DESCR"] {
width:300px !important;
max-width:300px !important;
#apexir_DESCR {
width:10px;
max-width:300px !important;
</style>And you can try add
table.apexir_WORKSHEET_DATA {
width: 100% !important;
table-layout: fixed !important;
}Regards,
Jari
My Blog: http://dbswh.webhop.net/htmldb/f?p=BLOG:HOME:0
Twitter: http://www.twitter.com/jariolai
Maybe you are looking for
-
When on a call my email and text notification still come through how do i stop this
How do I stop my email and text notifications whilst making a phone call?
-
Vista and iTunes shared library - Admin vs. Standard User
Here's a good one.....I am the administrator of the family's Vista desktop computer, my kids are Standard Users. When I log in to the computer and bring up iTunes, I am able to see and access our shared library of music on our Synology DS207+ NAS. Wh
-
I wrote oracle procedure in which I am using 2 cursor. When I execute this procedure I got following error. ERROR at line 1: ORA-00604: error occurred at recursive SQL level 2 ORA-04031: unable to allocate 1400 bytes of shared memory ("shared pool","
-
how can I select the apps i want to download from itunes to ipad after a system restore?
-
Hi, I need to do a program to update infotype 7407(Career Goal). However, I have difficulties in updating fields COMMENT_CLASS and COMMENT_ID. These 2 fields are the fields that will be updated if I edit the Career Goal from the portal with notes. Ho