スクロールさせる為に、データを重複させています Eclipse での配置例です LboxTable は、こちらにあります
public class Main extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JPanel jPanel = null; private LboxTable lboxTable = null; /** * This method initializes jPanel * * @return javax.swing.JPanel */ private JPanel getJPanel() { if (jPanel == null) { jPanel = new JPanel(); jPanel.setLayout(new BoxLayout(getJPanel(), BoxLayout.X_AXIS)); jPanel.setBounds(new Rectangle(11, 67, 497, 220)); jPanel.add(getLboxTable(), null); } return jPanel; } /** * This method initializes lboxTable * * @return lightbox.LboxTable */ private JScrollPane getLboxTable() { if (lboxTable == null) { lboxTable = new LboxTable(); lboxTable.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { // ダブルクリックの処理 if ( e.getClickCount() == 2 ) { int row = lboxTable.convertRowIndexToModel(lboxTable.rowAtPoint(e.getPoint())); int col = lboxTable.convertColumnIndexToModel(lboxTable.columnAtPoint(e.getPoint())); System.out.println(row+"/"+col); } } }); lboxTable.AddColumn("COLUMN_1"); lboxTable.AddColumn("COLUMN_2"); lboxTable.SetColumnTitle("COLUMN_1", "タイトル"); lboxTable.SetColumnTitle("COLUMN_2", "URL"); lboxTable.SetColumnWidth("COLUMN_1", 150); lboxTable.SetColumnWidth("COLUMN_2", 320); try { // ターゲット URL url = new URL("http://winofsql.jp/exlink.xml"); // 接続オブジェクト HttpURLConnection http = (HttpURLConnection)url.openConnection(); // GET メソッド http.setRequestMethod("GET"); // 接続 http.connect(); // XML 取得の準備 DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbfactory.newDocumentBuilder(); // InputStream から Documentオブジェクトを取得 Document doc = builder.parse(http.getInputStream()); // ここから先は一般的な DOM の処理 // ルート要素 Element root = doc.getDocumentElement(); // System.out.println(root.getNodeName()); // <row> 〜 </row> // getElementsByTagName が一番直感的で確実 NodeList nl1 = root.getElementsByTagName("row"); // 一つ目のノード Node nd1 = nl1.item(0); // System.out.println(nd1.getNodeName()); // <fld3>名称</fld3> // Node を Element にキャストして getElementsByTagName を使う NodeList nl2 = ((Element)nd1).getElementsByTagName("fld3"); NodeList nl3 = ((Element)nd1).getElementsByTagName("fld2"); // 最初の row ブロックの fld3 の 列挙 for( int i = 0; i < nl2.getLength(); i++ ) { // <fld3> // System.out.println((nl2.item(i)).getNodeName()); // 要素に挟まれた値は、実際はテキストノードの中にあります int nRow = lboxTable.AddRow(); lboxTable.SetColumnText(nRow, "COLUMN_1", (nl2.item(i)).getFirstChild().getNodeValue()); lboxTable.SetColumnText(nRow, "COLUMN_2", (nl3.item(i)).getFirstChild().getNodeValue()); nRow = lboxTable.AddRow(); lboxTable.SetColumnText(nRow, "COLUMN_1", (nl2.item(i)).getFirstChild().getNodeValue()); lboxTable.SetColumnText(nRow, "COLUMN_2", (nl3.item(i)).getFirstChild().getNodeValue()); } // 接続解除 http.disconnect(); } catch (Exception e) { } } return lboxTable.root; } /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ SwingUtilities.invokeLater(new Runnable() { public void run() { Main thisClass = new Main(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } /** * This is the default constructor */ public Main() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(531, 339); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJPanel(), null); } return jContentPane; } } // @jve:decl-index=0:visual-constraint="10,10"