JTable -showing column headers and displaying multi-line strings

This is two questions really.
#1 - Does anyone know why my column headers aren't showing in my jtable using the model below?
#2 - Does anyone know how I can display, mulitple line strings in a jtable? Currently my newline character ('\n') is just being displayed as a character.
any help very much appreciated,
private class TaskHistoryTableModel extends AbstractTableModel {
private List taskHistory = new ArrayList();
public Object getValueAt(int row, int col) {
if (col == 0) {
return ((TaskHistoryItem) taskHistory.get(row)).getText();
} else {
return ((TaskHistoryItem) taskHistory.get(row)).getDate().getTime();
public int getRowCount() {
return taskHistory == null ? 0 : taskHistory.size();
public int getColumnCount() {
return 2;
/** Getter for property taskHistory.
* @return Value of property taskHistory.
public List getTaskHistory() {
return taskHistory;
/** Setter for property taskHistory.
* @param taskHistory New value of property taskHistory.
public void setTaskHistory(List taskHistory) {
this.taskHistory = taskHistory;
public String getColumnName (int col) {
return col == 0 ? "Text" : "Entered At";
public boolean isCellEditable(int row, int col) {
return false;

fixed my own problem - make your mulit-line string into html format e.g.
this string will appear on two lines in a jtable
"<html><p>A much more interesting entry</p> <p>on multiple lines</p></html>"

Similar Messages

  • SJSE8 JTable creation doesn;t show column headers

    I am a swing/applet newbie. I am using SJSE8 GUI Editor to create an applet containing a JTable. When I use the table poperties to set the column headers and defaults data, I see the data but not the header. What am I doing wrong? The generated code follows:
            jTable1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 0, 51)));
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][]
                    {"Elimination", "NFL", "$100+$10", "21/100", "June 1st", "Open", "$2100.00"},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null}
                new String []
                    "TYPE", "Sport", "Price", "Players", "Closing", "Status", "Prize Pool"
                Class[] types = new Class []
                    java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
                boolean[] canEdit = new boolean []
                    false, false, false, false, false, false, false
                public Class getColumnClass(int columnIndex)
                    return types [columnIndex];
                public boolean isCellEditable(int rowIndex, int columnIndex)
                    return canEdit [columnIndex];
            jTable1.setMinimumSize(new java.awt.Dimension(340, 90));

    Try to place JTable inside of JScrollPane.
    Generated code:
        private void initComponents() {
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null}
                new String [] {
                    "Title 1", "Title 2", "Title 3", "Title 4"
            getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

  • Displaying Multi Line Text

    I am having issues in displaying multi line text on a Text Item. Basically there is data in the database column DetailText which is stored like this with carriage returns :
    If I look at the column in Toad it is formatted with all the carriage returns correctly eg.
    When I display this in my StaticStyled Item it displays like "Hello World" in one line. I want to be able to display it as it is with the carriage return on 2 seperate lines.
    I have looked in this forum and one search 2 places and one suggestion was to use RawText Item type. I have tried changing the Item Type to Raw Text and FormattedText but it doesn't make any difference. The lines are still displayed horizontally instead of vertically. Another place I saw was to use OAHTMLWebBean but doesn't show how I can do this.
    This should be simple enough but I have searched the DevGuide and this forum and couldn't figure out the solution. Any help would be appreciated.

    I tried to do it in different way. What i did is I have created a item of type formattted text and set its text like:--
    <html>User authentication failed. <br*> Cause: Invalid password.</html> --remove *
    So I am able to see the prompt like :-
    User authentication failed.
    Cause: Invalid password.
    Hope this helps you...

  • Column headers and data are mismatched in Data tab of views after move col.

    Currently, I am using Windows XP, SQL Developer Version 1.2.1 Build Main 32.13.
    Java platform 1.5.0_06
    Oracle IDE
    I'm having trouble with display of data from views in the "Data" tab of SQL Developer. If I move a column left or right of its original place, the data no longer line up with the proper column heading. The data are in the correct order, but the column headers are out of whack. Also, in the Single Record View, the data and column headers are mismatched.
    Refreshing the view, closing the view, closing and reopening SQL Developer do not "reset" the view so that the data and proper column headers are lined up. Even dropping and recreating the view does not force SQL Developer to use the proper data-column header match.
    Just to be clear, the data within the view is fine. It is the display of the data-column headers in the "Data" tab of SQL Developer (and the single record view) that is wrong. The mismatch seems to occur after a column is moved in the view.
    Is this a bug? I like the ability to move columns around within the display of the view. However, much more important that the column headers and data line up correctly.

    Thanks much. I found the correct file, deleted it, and the column headers and data match up again.
    I found the correct file by searching the directory for one of the column names that occurs in the view (though I had to find both instances of "COLUMN_NAME" and "COLUMN NAME" (without the underscore)). Not sure why there were files with both versions.
    Do you know if there is any way to prevent those XXXXXXXXXTableSettings.xml files from writing all together (oracle.javatools.controls.nicetable.NiceTablePersistentSettings)? I looked through the SQL Developer preferences but nothing jumped out as being the setting to switch off.
    Should I be doing anything in particular to bring more attention to this potential bug so it might get fixed in a future release?
    Thanks again,

  • How to display multi line headings in procedural alv report

    Hi experts,
    How to display multi line heading in alv( procedural alv report) report.
    some columns single line and some columns multi line in the same report.
                  solvent consumed          solvent recovered
                   fresh |   recovery             recovery | spent                            batch no                         storage
    I am using procedural alv .pls give me idea.

    Hi Ram,
    Check the sample report [how to display multi line headings in procedural alv report|http://sample-code-abap.blogspot.com/2008/01/printing-multiple-line-header-and.html]

  • How do you display multi line text

    How does one display multi line text? I would like to display address information on the screen so that the user can select it and copy/paste it into another application (ms word).
    I have the address information as separate columns (address1, address2, city, province, postal code) so I've changed the query on my view object to add it as address1 || chr(10) || address2 || chr(10) || city ....
    If I display it on the page as an output text, it all displays as one line (okay, the chr(10) thing did not work but that's beside the point).
    In general, is there a way to display multi line text? What component is suitable for this, if there is one?

    You can use normal outputText components in a panelGroupLayout (vertical layout) and add each attribute to it. The remove the labels or set the components to simple. You can then mark the data in the browser and use normal copy&paste to transfer the data.
    If you want to output longer text with line breaks you can use an outputText with escape=false and use the br html tag to generate a line break;
    <af:outputText escape="false"
    value="+++++++long<br>test<br> this is a long text in multiple lines" id="ot10" truncateAt="#{viewScope.ToggleBean.truncateLength}"/>Timo

  • Form results does not show column headers

    I created a form and when I enter info and then view the results, the results page does not show column headers.  How do I correct this?

    I just found out that the engineered version (10g) is also quite strange:
    It shows the values in the columns for the types.
    This looks very buggy.
    Is it not recommended to create views with the data modeler?
    Edited by: 931739 on 09.05.2012 06:38

  • Resize column width for JTable without column headers?

    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,

    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 {
    max-width:300px !important;
    </style>And you can try add
    table.apexir_WORKSHEET_DATA {
    width: 100% !important;
    table-layout: fixed !important;
    My Blog: http://dbswh.webhop.net/htmldb/f?p=BLOG:HOME:0
    Twitter: http://www.twitter.com/jariolai

  • How do I get the layout guides (A,B,C column headers and 1,2,3 Row Headers) to print with my spreadsheet?

    How do I get the Layout Guides (A,B,C column headers and 1,2,3 Row Headers) to print on my spreadsheet? They are invaluable for discussing the data with my clients over the phone.
    They appear while I am editing, but don't print with the spreadsheet. I know how to do it in Excel, but I am transitioning to Numbers. I can't imagine I have to type them into their own columns and rows. It must be a difference in vernacular that I can't find the solution in the User Guide. Can anyone help?

    Hi ktjobauer,
    Numbers is not Excel and Excel is not Numbers. Numbers is WYSIWYG (at least in File > Print and the actual printout).
    I can't imagine I have to type them into their own columns and rows.
    No, you don't. You can use the charm of Numbers to create cell references for your Excel clients.
    In this Numbers Table, I have added some extra Columns that you can hide later.
    Column B =COLUMN(A2)
    Column C =HLOOKUP(B2,'Table 1-1' :: $1:$2,2,FALSE)      [explanation later]
    Column D =ROW(B2)
    Column E =C2&D2
    Add those formulas to the first Body Row (below the Header Row) and Fill Down.
    Column C refers to another Table which you need only create once, to convert a Column number to a letter:
    and so on from 1-26, A-Z.
    You can move the second Table to another Sheet to hide it. Formulas will automatically adjust to keep the links between Sheets.
    Now in the first Table, select and Hide Columns B,C,D. Formulas will continue to work with hidden cells:

  • How to Read the one Source Column data and Display the Results

    Hi All,
         I have one PR_ProjectType Column in my Mastertable,Based on that Column we need to reed the column data and Display the Results
    like that data will come now we need 1. Ad,AM then same we need 2. AD also same we need 3. AM also we need
    4.AD,AM,TS,CS.OT,TS in this string we need AD,AM  only.
    this logic we need we have thousand of data in the table.Please help this is urgent issue

    Hi Vasu,
    Based on your description, you want to eliminate the substrings (eliminated by comma) that are not AD or AM in each value of the column. Personally, I don’t think this can be done by just using an expression in the Derived Column. To achieve your goal, here
    are two approaches for your reference:
    Method 1: On the query level. Replace the target substrings with different integer characters, and create a function to eliminate non-numeric characters, then replace the integer characters with the corresponding substrings. The statements
    for the custom function is as follows:
    CREATE FUNCTION dbo.udf_GetNumeric
    (@strAlphaNumeric VARCHAR(256))
    DECLARE @intAlpha INT
    SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
    WHILE @intAlpha > 0
    SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
    SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
    RETURN ISNULL(@strAlphaNumeric,0)
    The SQL commands used in the OLE DB Source is like:
    ID, REPLACE(REPLACE(REPLACE(REPLACE(dbo.udf_GetNumeric(REPLACE(REPLACE(REPLACE(REPLACE([ProjectType],'AD,',1),'AM,',2),'AD',3),'AM',4)),4,'AM'),3,'AD'),2,'AM,'),1,'AD,')
    FROM MyTable
    Method 2: Using a Script Component. Add a Derived Column Transform to replace the target substrings as method 1, use Regex in script to remove all non-numeric characters from the string, add another Derived Column to replace the integer
    characters to the corresponding substring. The script is as follows:
    using System.Text.RegularExpressions;
    Row.OutProjectType= Regex.Replace(Row.ProjectType, "[^.0-9]", "");
    Mike Yin
    TechNet Community Support

  • Multi-line String - Match Regular Expression

    I am trying to figure out the format of a regular expression in order to pull select lines out of a multi-line string and populate those lines as individual elements of a string array while using Match Regular Expression. The overall length of the multi-line string can vary as well as the text contained within the string. The string can contain letters, numbers, and special characters. I have attached an example VI. Within the example VI I only want to return the lines beginning with "Device #" into the array. The number of lines beginning with "Device #" can vary but I want to capture them all.
    Or is there a better function to use instead of Match Regular Expression that will give me the desired outcome?  
    Go to Solution.
    MultiLine Regular Expression.vi ‏22 KB

    aaronb wrote:
    I am trying to figure out the format of a regular expression in order to pull select lines out of a multi-line string and populate those lines as individual elements of a string array while using Match Regular Expression. The overall length of the multi-line string can vary as well as the text contained within the string. The string can contain letters, numbers, and special characters. I have attached an example VI. Within the example VI I only want to return the lines beginning with "Device #" into the array. The number of lines beginning with "Device #" can vary but I want to capture them all.
    Or is there a better function to use instead of Match Regular Expression that will give me the desired outcome?  
    Match Regular Expression works well for this.

  • Multi-line string - Array?

    I was wondering if someone could tell me how to take a multi-line
    string and dump it into an array. I'm assuming that I use the 'Pick
    Line' function in a while loop? What do I check for to terminate the
    -- N

    "kevin" wrote in message news:...
    > In article <[email protected]>, "Natalia"
    > wrote:
    > > I was wondering if someone could tell me how to take a multi-line string
    > > and dump it into an array. I'm assuming that I use the 'Pick Line'
    > > function in a while loop? What do I check for to terminate the loop?
    > >
    > > Thanks...
    > >
    > > -- N
    > Natalia,
    > Use the 'Spreadsheet String to Array' vi. Use the End of Line delimiter
    > (or carriage return, depends on OS). Add a %s to the format string and
    > POOF!, an instant text array. No loops required. Oh yeah, you also need
    > to add an array string constant to the array type so the output comes ou
    > as a string type instead of the default double.
    > You can do it with you present method if you need the loops for other
    > stuff. To terminate the loop just look for a -1 in the output of 'Pick
    > Line' when searching for you CR or EOL. You just have to remember to dump
    > the last value.
    > good luck,
    > - Kevin
    Kevin -
    Thank you. That did the trick.
    -- Natalia

  • Showing Grid without column headers and Grid lines

    Hi all
    does anyone knows how can set a grid object to display without grid lines and without column headers?
    appreciate the help

    Hi Yechiel,
    When you work with the grid you just have to drag it into your srf and bind it with some table by specifying the table name in its properties.
    When the form launches the columns of the grid  will be created automatically as per the number of columns in the table.The caption of the column in the grid will be the same as that of the name of the column in the table.The only condition for this is that the table should contain some records, if the table is empty no grid lines and the column header will be displayed .
    I hope this meet your requirements.
    Below I am sending you the code segments with the help of which you can control the grid progamatically...
    //Declaring the grid object
    Grid oGrid;
    //Initializing the grid object
    //Adding a new data table to the form
    //Assigning the data table to the grid
    oGrid.DataTable = oSboApplication.Forms.ActiveForm.DataSources.DataTables.Item( "MBS_DataTable" );
    // This statement will clear the grid
    // In this way you can set the column properties
    // In this way you can set the column width
    oGrid.Columns.Item( 0 ).Width = 50;
    oGrid.Columns.Item( 1 ).Width = 60;
    oGrid.Columns.Item( 2 ).Width = 130;
    //This is the way you can set a user defined caption on the column header.
    query="select U_CTX_MOVCODE as 'Movie Code',U_CTX_MOVNAME as 'Movie Name',U_CTX_SHELF as 'Shelf Number',U_CTX_SPACE as 'Space Number',U_CTX_CARDCODE as 'Customer Code',U_CTX_RENTED as 'Rent Status' from [@CTX_VSTORE] order by Code";

  • JTable column headers not displaying using custom table model

    I'm attempting to use a custom table model (by extending AbstractTableModel) to display the contents of a data set in a JTable. The table is displaying the data itself correctly but there are no column headers appearing. I have overridden getColumnName of the table model to return the correct header and have tried playing with the ColumnModel for the table but have not been able to get the headers to display (at all).
    Any ideas?

    Class PublicationTableModel:
    public class PublicationTableModel extends AbstractTableModel
        PublicationManager pubManager;
        /** Creates a new instance of PublicationTableModel */
        public PublicationTableModel(PublicationManager pm)
            pubManager = pm;
        public int getColumnCount()
            return GUISettings.getDisplayedFieldCount();
        public int getRowCount()
            return pubManager.getPublicationCount();
        public Class getColumnClass(int columnIndex)
            Object o = getValueAt(0, columnIndex);
            if (o != null) return o.getClass();
            return (new String()).getClass();
        public String getColumnName(int columnIndex)
            System.out.println("asked for column name "+columnIndex+" --> "+GUISettings.getColumnName(columnIndex));
            return GUISettings.getColumnName(columnIndex);
        public Publication getPublicationAt(int rowIndex)
            return pubManager.getPublicationAt(rowIndex);
        public Object getValueAt(int rowIndex, int columnIndex)
            Publication pub = (Publication)pubManager.getPublicationAt(rowIndex);
            String columnName = getColumnName(columnIndex);
            if (columnName.equals("Address"))
                if (pub instanceof Address) return ((Address)pub).getAddress();
                else return null;
            else if (columnName.equals("Annotation"))
                if (pub instanceof Annotation) return ((Annotation)pub).getAnnotation();
                else return null;
           else if (columnName.equals("Title"))
                return pub.getTitle();
            else if (columnName.equals("Key"))
                return pub.getKey();
            return null;
        public boolean isCellEditable(int rowIndex, int colIndex)
            return false;
        public void setValueAt(Object vValue, int rowIndex, int colIndex)
        }Class GUISettings:
    public class GUISettings {
        private static Vector fields = new Vector();
        private static Vector classes = new Vector();
        /** Creates a new instance of GUISettings */
        public GUISettings() {
        public static void setFields(Vector f)
        public static int getDisplayedFieldCount()
            return fields.size();
        public static String getColumnName(int columnIndex)
            return (String)fields.elementAt(columnIndex);
        public static Vector getFields()
            return fields;
    }GUISettings.setFields has been called before table is displayed.

  • JTable Header & column Headers

    i want to add a table Header(Level 1 Students)
    and a columns Headers(Name ID Section#)
    How can i do that ?
    Thanks a lot
    This is my code:
    import java.awt.*;
    import java.applet.*;
    import java.applet.Applet;
    import java.awt.image.*;
    import javax.swing.*;
    import java.util.*;
    class DrawingCanvas extends Canvas{
    Applet app;
    Image img;
    public void init(Applet app)
         setBackground(new Color(165, 215, 220));
         img = app.getImage(app.getCodeBase(), "cloud.gif");
    public void paint(Graphics g)
    public class Table_Button extends JApplet {
         DrawingCanvas canvas;
         // a separate JPanel is associated with each JButton
    JPanel button1_JPanel, button2_JPanel, button3_JPanel, button4_JPanel,button5_JPanel,button6_JPanel,button7_JPanel;
    JPanel button8_JPanel;
    JPanel topic;     //For Topic name
    JPanel JButtons; // for all the JButtons
    JPanel tables_JButtons_JPanel;
    JTable table;
    JButton button1,button2,button3,button4,button5,button6,button7;
    JButton show_button8;
    public void init(){
    canvas = new DrawingCanvas();
    //Controls JButtons
         button1 = new JButton("button1");
    button2 = new JButton("button2");
    button3 = new JButton("button3");
    button4 = new JButton("button4");
    button5= new JButton("button5");
    button6= new JButton("button6");
    button7= new JButton ("button7");
    //button8 JButton
    show_button8= new JButton("Show button8");
    button1.setBackground(new Color(111, 178, 230));
    button2.setBackground(new Color(111, 178, 230));
    button3.setBackground(new Color(111, 178, 230));
    button4.setBackground(new Color(111, 178, 230));
    button5.setBackground(new Color(111, 178, 230));
    button6.setBackground(new Color(111, 178, 230));
    button7.setBackground(new Color(111, 178, 230));
    show_button8.setBackground(new Color(111, 178, 230));
    /*Topic Name*/
    topic = new JPanel();
    topic.setLayout(new BorderLayout());
    topic.add(new JLabel(" Topic Name ",JLabel.CENTER));
    All Controls
         button1_JPanel = new JPanel();
    button1_JPanel.setLayout(new BorderLayout());
    button2_JPanel = new JPanel();
    button2_JPanel.setLayout(new BorderLayout());
    button3_JPanel = new JPanel();
    button3_JPanel.setLayout(new BorderLayout());
    button4_JPanel = new JPanel();
    button4_JPanel.setLayout(new BorderLayout());
    button5_JPanel = new JPanel();
    button5_JPanel.setLayout(new BorderLayout());
    button6_JPanel = new JPanel();
    button6_JPanel.setLayout(new BorderLayout());
    button7_JPanel = new JPanel();
    button7_JPanel.setLayout(new BorderLayout());
    button8_JPanel = new JPanel();
    button8_JPanel.setLayout(new BorderLayout());
    // all JButtons JPanel
    JButtons = new JPanel();
    JButtons.setLayout(new FlowLayout());
    JButtons.setBackground(new Color(228, 241, 250));
    //How to set the table header(title) to (Level 1 Students)
    // How to set the table columns headers to (Name ID Section)
         table = new JTable( 5, 3 );
         tables_JButtons_JPanel = new JPanel();
    tables_JButtons_JPanel.setLayout(new BorderLayout());
    // Display the JPanels..
         this.setLayout(new BorderLayout());     
    add("Center",canvas); // here i want to add some images and drawings
    }// end inti()

    JTable Tutorial didn't specify how to add columns names when using the constructor:
    JTable(int numberofRows,int numberofColumns) Well then use another constructor. For example:
    DefaultTableModel model = new DefaultTableModel(...);
    JTable table = new JTable( model );Also, I forgot to mention don't use AWT components in a Swing application. Canvas is an AWT component. Use JPanel instead.

Maybe you are looking for