{"id":23757,"date":"2015-06-17T11:00:05","date_gmt":"2015-06-17T08:00:05","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=23757"},"modified":"2015-06-16T01:10:50","modified_gmt":"2015-06-15T22:10:50","slug":"java-jtable-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/","title":{"rendered":"Java JTable Example"},"content":{"rendered":"<p>In this example we are going to demonstrate how to use Java Swing <code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code>,\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code> is a Swing component with which we can display tables of data, optionally allowing the user to edit the data,\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code> relies on a separate <code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/table\/TableModel.html\" target=\"_blank\">TableModel<\/a><\/code> object to hold and represent the data it displays.<br \/>\nThis article shows how to work with\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code> using a simple example where we build a GUI with a\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code> to show contents of a directory in the filesystem in tabular form.<\/p>\n<p>&nbsp;<\/p>\n<h2>1. Swing JTable:<\/h2>\n<p>We create a new\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code>\u00a0object where we can initialize the data model and enable scrolling.<\/p>\n<pre class=\"brush:java\">\r\n\/\/ Create a JTable and tell it to display our model\r\nJTable table = new JTable(tableModel);\r\n\r\n\/\/ Put the JTable in a JScrollPane to handle scrolling\r\nJScrollPane tableScrollPane = new JScrollPane(table);\r\ntableScrollPane.setPreferredSize(new Dimension(250, 200));\r\n<\/pre>\n<h2>2. JTable Data Model:<\/h2>\n<p>We create a <code>CustomTableModel.java<\/code> as we want to display a tabular view of data that is not, by nature, tabular, you must implement the\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/table\/TableModel.html\" target=\"_blank\">TableModel<\/a><\/code> interface (or, more likely, subclass the <code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/table\/AbstractTableModel.html\" target=\"_blank\">AbstractTableModel<\/a><\/code> class). The job of this\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/table\/TableModel.html\" target=\"_blank\">TableModel<\/a><\/code> implementation is to serve as the interface between your data, which is not neatly organized into a table, and the\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code> object, which wants to display a table. In other words, your\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/table\/TableModel.html\" target=\"_blank\">TableModel<\/a><\/code> presents a neat tabular view of your data, regardless of how the data is organized underneath.<\/p>\n<p><em><span style=\"text-decoration: underline\">CustomTableModel.java:<\/span><\/em><\/p>\n<pre class=\"brush:java\">package com.jcg;\r\n\r\nimport java.io.File;\r\nimport java.util.Date;\r\n\r\nimport javax.swing.table.AbstractTableModel;\r\n\r\n\/**\r\n * The Class CustomTableModel contains methods to allow the JTable component to\r\n * get and display data about the files in a specified directory. It represents\r\n * a table with six columns: filename, size, modification date, plus three\r\n * columns for flags: directory, readable, writable.\r\n * \r\n * @author ashraf_sarhan\r\n *\/\r\n@SuppressWarnings(\"serial\")\r\npublic class CustomTableModel extends AbstractTableModel {\r\n\r\n\tprivate File dir;\r\n\tprivate String[] filenames;\r\n\tprivate String[] columnNames = TableColumn.getNames();\r\n\tprivate Class&lt;?&gt;[] columnClasses = Constants.COLUMN_CLASSES;\r\n\r\n\t\/\/ This table model works for any one given directory\r\n\tpublic CustomTableModel(File dir) {\r\n\t\tthis.dir = dir;\r\n\t\t\/\/ Store a list of files in the directory\r\n\t\tthis.filenames = dir.list();\r\n\t}\r\n\r\n\t\/\/ Returns a constant columns number for this model\r\n\tpublic int getColumnCount() {\r\n\t\treturn Constants.COLUMN_CLASSES.length;\r\n\t}\r\n\r\n\t\/\/ Returns the number of files in directory\r\n\tpublic int getRowCount() {\r\n\t\treturn filenames.length;\r\n\t}\r\n\r\n\t\/\/ Returns the name of the given column index\r\n\tpublic String getColumnName(int col) {\r\n\t\treturn columnNames[col];\r\n\t}\r\n\r\n\tpublic Class&lt;?&gt; getColumnClass(int col) {\r\n\t\treturn columnClasses[col];\r\n\t}\r\n\r\n\t\/\/ Returns the value of each cell\r\n\tpublic Object getValueAt(int row, int col) {\r\n\t\tFile f = new File(dir, filenames[row]);\r\n\t\tTableColumn tableColumn = TableColumn.fromIndex(col);\r\n\t\tswitch (tableColumn) {\r\n\t\tcase NAME:\r\n\t\t\treturn filenames[row];\r\n\t\tcase SIZE:\r\n\t\t\treturn new Long(f.length());\r\n\t\tcase LAST_MODIFIED:\r\n\t\t\treturn new Date(f.lastModified());\r\n\t\tcase DIRECTORY:\r\n\t\t\treturn f.isDirectory() ? Boolean.TRUE : Boolean.FALSE;\r\n\t\tcase READABLE:\r\n\t\t\treturn f.canRead() ? Boolean.TRUE : Boolean.FALSE;\r\n\t\tcase WRITABLE:\r\n\t\t\treturn f.canWrite() ? Boolean.TRUE : Boolean.FALSE;\r\n\t\tdefault:\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/pre>\n<p>Also, we have an enum <code>TableColumn.java<\/code> which represents the table six columns (<code>filename<\/code>, <code>size<\/code>, <code>modification date<\/code>, <code>directory<\/code>, <code>readable<\/code>, <code>writable<\/code>).<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><span style=\"text-decoration: underline\"><em>TableColumn.java:<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.jcg;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Map;\r\n\r\n\/**\r\n * The Enum TableColumn contains table columns names along with their indices.\r\n *\r\n * @author ashraf_sarhan\r\n *\/\r\npublic enum TableColumn {\r\n\r\n\tNAME(0, \"name\"), SIZE(1, \"size\"), LAST_MODIFIED(2, \"last modified\"), DIRECTORY(\r\n\t\t\t3, \"directory?\"), READABLE(4, \"readable?\"), WRITABLE(5, \"writable?\");\r\n\r\n\tprivate TableColumn(int index, String name) {\r\n\t\tthis.index = index;\r\n\t\tthis.name = name;\r\n\t}\r\n\r\n\tprivate int index;\r\n\tprivate String name;\r\n\r\n\tprivate static final Map&lt;Integer, TableColumn&gt; COLUMN_INDEX_NAME_MAP = new HashMap&lt;&gt;();\r\n\tprivate static final List&lt;String&gt; NAMES = new ArrayList&lt;&gt;();\r\n\r\n\tstatic {\r\n\t\tfor (TableColumn c : TableColumn.values()) {\r\n\t\t\tCOLUMN_INDEX_NAME_MAP.put(c.index, c);\r\n\t\t\tNAMES.add(c.name);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic static TableColumn fromIndex(int colIndex) {\r\n\t\tTableColumn columnName = COLUMN_INDEX_NAME_MAP.get(colIndex);\r\n\t\treturn (columnName != null) ? columnName : null;\r\n\t}\r\n\r\n\tpublic static String[] getNames() {\r\n\t\treturn NAMES.toArray(new String[NAMES.size()]);\r\n\t}\r\n\r\n}\r\n<\/pre>\n<h2>3. JTable Demo:<\/h2>\n<p>We create <code>SwingJTableDemo.java<\/code> class to test our example. Also, we add a supplementary <code>Constants.java<\/code> class contains constants used through our code.<\/p>\n<p><span style=\"text-decoration: underline\"><em>SwingJTableDemo.java:<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.jcg;\r\n\r\nimport java.awt.Dimension;\r\nimport java.awt.event.ActionEvent;\r\nimport java.awt.event.ActionListener;\r\nimport java.io.File;\r\n\r\nimport javax.swing.JButton;\r\nimport javax.swing.JFrame;\r\nimport javax.swing.JOptionPane;\r\nimport javax.swing.JPanel;\r\nimport javax.swing.JScrollPane;\r\nimport javax.swing.JSplitPane;\r\nimport javax.swing.JTable;\r\nimport javax.swing.JTextField;\r\nimport javax.swing.SwingUtilities;\r\nimport javax.swing.UIManager;\r\nimport javax.swing.UIManager.LookAndFeelInfo;\r\n\r\n\/**\r\n * The Class SwingJTableDemo to show our running example.\r\n *\r\n * @author ashraf_sarhan\r\n *\/\r\npublic class SwingJTableDemo {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tSwingUtilities.invokeLater(new Runnable() {\r\n\t\t\tpublic void run() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t\/\/ Set Nimbus as L&amp;F\r\n\t\t\t\t\tsetLookAndFeel(Constants.NIMBUS_LF);\r\n\t\t\t\t\tcreateAndShowGUI(args);\r\n\t\t\t\t} catch (Exception e) {\r\n\t\t\t\t\te.printStackTrace();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tpublic static void createAndShowGUI(String[] args) throws Exception {\r\n\t\t\/\/ Figure out what directory to display\r\n\t\tFile dir;\r\n\t\tif (args.length &gt; 0)\r\n\t\t\tdir = new File(args[0]);\r\n\t\telse\r\n\t\t\tdir = new File(System.getProperty(\"user.home\"));\r\n\r\n\t\t\/\/ Create a TableModel object to represent the contents of the directory\r\n\t\tCustomTableModel tableModel = new CustomTableModel(dir);\r\n\r\n\t\t\/\/ Create a JTable and tell it to display our model\r\n\t\tJTable table = new JTable(tableModel);\r\n\r\n\t\t\/\/ Put the JTable in a JScrollPane to handle scrolling\r\n\t\tJScrollPane tableScrollPane = new JScrollPane(table);\r\n\t\ttableScrollPane.setPreferredSize(new Dimension(250, 200));\r\n\r\n\t\tJTextField dirPathTextField = new JTextField(26);\r\n\r\n\t\t\/\/ Create an action listener to display the given directory\r\n\t\tJButton displayDirButton = new JButton(\"Display Directory\");\r\n\t\tdisplayDirButton.addActionListener(new ActionListener() {\r\n\t\t\tpublic void actionPerformed(ActionEvent e) {\r\n\t\t\t\tString dirPath = dirPathTextField.getText();\r\n\t\t\t\tif (dirPath != null &amp;&amp; !\"\".equals(dirPath)) {\r\n\t\t\t\t\tFile newDir = new File(dirPath);\r\n\t\t\t\t\t;\r\n\t\t\t\t\tCustomTableModel newTableModel = new CustomTableModel(\r\n\t\t\t\t\t\t\tnewDir);\r\n\t\t\t\t\ttable.setModel(newTableModel);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tJOptionPane.showMessageDialog(null,\r\n\t\t\t\t\t\t\t\"Directory path is empty\", \"Error\",\r\n\t\t\t\t\t\t\tJOptionPane.ERROR_MESSAGE);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tJPanel ctrlPane = new JPanel();\r\n\t\tctrlPane.add(dirPathTextField);\r\n\t\tctrlPane.add(displayDirButton);\r\n\r\n\t\tJSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,\r\n\t\t\t\tctrlPane, tableScrollPane);\r\n\t\tsplitPane.setDividerLocation(35);\r\n\t\tsplitPane.setEnabled(false);\r\n\r\n\t\t\/\/ Display it all in a scrolling window and make the window appear\r\n\t\tJFrame frame = new JFrame(\"Swing JTable Demo\");\r\n\t\tframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r\n\t\tframe.add(splitPane);\r\n\t\tframe.pack();\r\n\t\tframe.setLocationRelativeTo(null);\r\n\t\tframe.setVisible(true);\r\n\t}\r\n\r\n\tpublic static void setLookAndFeel(String lf) throws Exception {\r\n\t\ttry {\r\n\t\t\tfor (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {\r\n\t\t\t\tif (lf.equals(info.getName())) {\r\n\t\t\t\t\tUIManager.setLookAndFeel(info.getClassName());\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (Exception e) {\r\n\t\t\t\/\/ If the given lf is not available, you can set the GUI the system\r\n\t\t\t\/\/ default L&amp;F.\r\n\t\t\tUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/pre>\n<p><em><span style=\"text-decoration: underline\">Constants.java:<\/span><\/em><\/p>\n<pre class=\"brush:java\">package com.jcg;\r\n\r\nimport java.util.Date;\r\n\r\n\/**\r\n * The Class Constants contains some constants which will be used across the\r\n * code.\r\n *\r\n * @author ashraf_sarhan\r\n *\/\r\npublic class Constants {\r\n\r\n\tpublic static final Class&lt;?&gt;[] COLUMN_CLASSES = new Class[] { String.class,\r\n\t\t\tLong.class, Date.class, Boolean.class, Boolean.class, Boolean.class };\r\n\r\n\tpublic static final String NIMBUS_LF = \"Nimbus\";\r\n\r\n}\r\n<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<p><figure style=\"width: 822px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/06\/swing_jtable_demo.jpg\"><img decoding=\"async\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/06\/swing_jtable_demo.jpg\" alt=\"Figure 1: Swing JTable Demo\" width=\"822\" height=\"260\" \/><\/a><figcaption class=\"wp-caption-text\">Figure 1: Swing JTable Demo<\/figcaption><\/figure><\/p>\n<h2>4. Download the Source Code of this example:<\/h2>\n<p>This was an example on how to use Java Swing\u00a0<code><a href=\"http:\/\/docs.oracle.com\/javase\/8\/docs\/api\/javax\/swing\/JTable.html\" target=\"_blank\">JTable<\/a><\/code>.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a title=\"Swing JTable Example Code\" href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/06\/swingjtable-example-code.zip\" target=\"_blank\"><strong>SwingJTableExampleCode.zip<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally allowing the user to edit the data,\u00a0JTable relies on a separate TableModel object to hold and represent the data it displays. This article shows how to work with\u00a0JTable &hellip;<\/p>\n","protected":false},"author":24,"featured_media":1204,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[954],"tags":[1058],"class_list":["post-23757","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jtable","tag-swing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java JTable Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java JTable Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ashraf.sar7an\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-17T08:00:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ashraf Sarhan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/ashraf_sarhan\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashraf Sarhan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\"},\"author\":{\"name\":\"Ashraf Sarhan\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/553eb8f56e9ffb76e6bcc85d6157fc91\"},\"headline\":\"Java JTable Example\",\"datePublished\":\"2015-06-17T08:00:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\"},\"wordCount\":263,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"keywords\":[\"swing\"],\"articleSection\":[\"JTable\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\",\"name\":\"Java JTable Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"datePublished\":\"2015-06-17T08:00:05+00:00\",\"description\":\"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg\",\"width\":150,\"height\":150,\"caption\":\"Bipartite Graph\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desktop Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"swing\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/swing\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"JTable\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/swing\/jtable\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Java JTable Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/553eb8f56e9ffb76e6bcc85d6157fc91\",\"name\":\"Ashraf Sarhan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/cropped-ashraf_sarhan_photo-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/cropped-ashraf_sarhan_photo-96x96.jpg\",\"caption\":\"Ashraf Sarhan\"},\"description\":\"Ashraf Sarhan is a passionate software engineer, an open source enthusiast, has a Bsc. degree in Computer and Information Systems from Alexandria University. He is experienced in building large, scalable and distributed enterprise applications\/service in multiple domains. He also has a keen interest in JavaEE, SOA, Agile and Big Data technologies.\",\"sameAs\":[\"http:\/\/www.javacodegeeks.com\",\"https:\/\/www.facebook.com\/ashraf.sar7an\",\"https:\/\/eg.linkedin.com\/in\/ashrafsarhan\",\"https:\/\/x.com\/http:\/\/twitter.com\/ashraf_sarhan\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/ashraf-sarhan\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java JTable Example - Java Code Geeks","description":"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/","og_locale":"en_US","og_type":"article","og_title":"Java JTable Example - Java Code Geeks","og_description":"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally","og_url":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_author":"https:\/\/www.facebook.com\/ashraf.sar7an","article_published_time":"2015-06-17T08:00:05+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","type":"image\/jpeg"}],"author":"Ashraf Sarhan","twitter_card":"summary_large_image","twitter_creator":"@http:\/\/twitter.com\/ashraf_sarhan","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ashraf Sarhan","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/"},"author":{"name":"Ashraf Sarhan","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/553eb8f56e9ffb76e6bcc85d6157fc91"},"headline":"Java JTable Example","datePublished":"2015-06-17T08:00:05+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/"},"wordCount":263,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","keywords":["swing"],"articleSection":["JTable"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/","url":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/","name":"Java JTable Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","datePublished":"2015-06-17T08:00:05+00:00","description":"In this example we are going to demonstrate how to use Java Swing JTable,\u00a0JTable is a Swing component with which we can display tables of data, optionally","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/java-logo.jpg","width":150,"height":150,"caption":"Bipartite Graph"},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/desktop-java\/swing\/jtable\/java-jtable-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Desktop Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/"},{"@type":"ListItem","position":4,"name":"swing","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/swing\/"},{"@type":"ListItem","position":5,"name":"JTable","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/desktop-java\/swing\/jtable\/"},{"@type":"ListItem","position":6,"name":"Java JTable Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/553eb8f56e9ffb76e6bcc85d6157fc91","name":"Ashraf Sarhan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/cropped-ashraf_sarhan_photo-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2024\/04\/cropped-ashraf_sarhan_photo-96x96.jpg","caption":"Ashraf Sarhan"},"description":"Ashraf Sarhan is a passionate software engineer, an open source enthusiast, has a Bsc. degree in Computer and Information Systems from Alexandria University. He is experienced in building large, scalable and distributed enterprise applications\/service in multiple domains. He also has a keen interest in JavaEE, SOA, Agile and Big Data technologies.","sameAs":["http:\/\/www.javacodegeeks.com","https:\/\/www.facebook.com\/ashraf.sar7an","https:\/\/eg.linkedin.com\/in\/ashrafsarhan","https:\/\/x.com\/http:\/\/twitter.com\/ashraf_sarhan"],"url":"https:\/\/examples.javacodegeeks.com\/author\/ashraf-sarhan\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/23757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/24"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=23757"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/23757\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/1204"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=23757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=23757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=23757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}