Archives Code

Arsip atau kumpulan kode penting untuk tujuan pengembangan website gratis

  • Home
  • Java
  • wordpress
  • Blogspot
  • Tutorial
  • Other
Beranda » java » Membuat nomor pada jtable

Membuat nomor pada jtable


Selamat siang, malam, pagi, sore kepada pembaca yang selalu aktif dalam mencari artikel artikel yang bermanfanfaat untuk pengembangan web anda.

Baiklah pembaca sekalian, pada kesempatan kali ini kami dari team archives code akan membagikan artikel tentang Membuat nomor pada jtable dengan tanpa bertele-tele dan tentunya mudah untuk dimengerti semua kalangan, baik pemula lebih lebih sudah tingkatan ulung dalam mengelola website/ tingkatan master
baiklah gan, tanpa menunggu lama, jika anda bekerja dengan jtabel ada kalanya anda ingin menambahkan nomor pada jtabel anda tenyata ada cara yang cukup mudah yaitu dengan membuat sebuah class row number yang berfungsi untuk menambahkan row pada jscrollpanel kita :

1 buat class baru dengan nama RowNumberTable.java 
kemudian isi dengan baris berikut
package lib;

import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;

/*
 * Use a JTable as a renderer for row numbers of a given main table.
 *  This table must be added to the row header of the scrollpane that
 *  contains the main table.
 */
public class RowNumberTable extends JTable
implements ChangeListener, PropertyChangeListener, TableModelListener
{
private JTable main;

public RowNumberTable(JTable table)
{
main = table;
main.addPropertyChangeListener( this );
main.getModel().addTableModelListener( this );

setFocusable( false );
setAutoCreateColumnsFromModel( false );
setSelectionModel( main.getSelectionModel() );


TableColumn column = new TableColumn();
column.setHeaderValue(" ");
addColumn( column );
column.setCellRenderer(new RowNumberRenderer());

getColumnModel().getColumn(0).setPreferredWidth(50);
setPreferredScrollableViewportSize(getPreferredSize());
}

@Override
public void addNotify()
{
super.addNotify();

Component c = getParent();

//  Keep scrolling of the row table in sync with the main table.

if (c instanceof JViewport)
{
JViewport viewport = (JViewport)c;
viewport.addChangeListener( this );
}
}

/*
*  Delegate method to main table
*/
@Override
public int getRowCount()
{
return main.getRowCount();
}

@Override
public int getRowHeight(int row)
{
int rowHeight = main.getRowHeight(row);

if (rowHeight != super.getRowHeight(row))
{
super.setRowHeight(row, rowHeight);
}

return rowHeight;
}

/*
*  No model is being used for this table so just use the row number
*  as the value of the cell.
*/
@Override
public Object getValueAt(int row, int column)
{
return Integer.toString(row + 1);
}

/*
*  Don't edit data in the main TableModel by mistake
*/
@Override
public boolean isCellEditable(int row, int column)
{
return false;
}

/*
*  Do nothing since the table ignores the model
*/
@Override
public void setValueAt(Object value, int row, int column) {}
//
//  Implement the ChangeListener
//
public void stateChanged(ChangeEvent e)
{
//  Keep the scrolling of the row table in sync with main table

JViewport viewport = (JViewport) e.getSource();
JScrollPane scrollPane = (JScrollPane)viewport.getParent();
scrollPane.getVerticalScrollBar().setValue(viewport.getViewPosition().y);
}
//
//  Implement the PropertyChangeListener
//
public void propertyChange(PropertyChangeEvent e)
{
//  Keep the row table in sync with the main table

if ("selectionModel".equals(e.getPropertyName()))
{
setSelectionModel( main.getSelectionModel() );
}

if ("rowHeight".equals(e.getPropertyName()))
{
repaint();
}

if ("model".equals(e.getPropertyName()))
{
main.getModel().addTableModelListener( this );
revalidate();
}
}

//
//  Implement the TableModelListener
//
@Override
public void tableChanged(TableModelEvent e)
{
revalidate();
}

/*
*  Attempt to mimic the table header renderer
*/
private static class RowNumberRenderer extends DefaultTableCellRenderer
{
public RowNumberRenderer()
{
setHorizontalAlignment(JLabel.CENTER);
}

public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
if (table != null)
{
JTableHeader header = table.getTableHeader();

if (header != null)
{
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
}

if (isSelected)
{
setFont( getFont().deriveFont(Font.BOLD) );
}

setText((value == null) ? "" : value.toString());
setBorder(UIManager.getBorder("TableHeader.cellBorder"));

return this;
}
}
}
kemudian cara menggunakan nya adalah dengan memangil class tersebut

        JTable rownomber = new RowNumberTable(jTable);
        jScrollPane1.setRowHeaderView(rownomber);

Cukup mudah dan tidak ribet kan gan????, selanjutnya silakan di coba untuk mengecek apakah berhasil apa tidak gan.

Mungkin artikel tentang cara Membuat nomor pada jtable cukup sampai disini dulu ya gan, sampai ketemu pada artikel selanjutnya yang tentunya lebih bermanfaat lagi, agan boleh lihat lebih lengkap pada halaman sitemap

Apabila ada yang perlu didiskusikan dengan team kami, silahkan agan menulisnya dikolom komentar atau langsung hubungi kami di halaman contact us ya gan, semoga berhasil

Related post:

Newer Post
Older Post
Home

Popular Posts

  • Cara mengirim email di wordpress dengan wp_mail()
    halo sobat archives code, pada kesempatan kali ini kami akan menjelaskan tentang cara mengirim email di wordpress dengan wp_mail() . belu...
  • Cara Mengatasi Class 'Form' not found" atau Class 'Html' not found" pada Laravel 5.2
    Selamat malam sobat koding dari sabang sampai meroke yang sedang membaca coretan kecil ini, banyak sekali problem klasik yang sering meni...
  • Cara mengatasi A valid feed URL is required: Feed exceeds 512KB size limit pada dlvr.it
    pernahkah anda mengalami error  A valid feed URL is required: Feed exceeds 512KB size limit  pada saat menghubungkan facebook dan DLVR...
  • Mengatasi error THIS EMAIL ADDRESS DOES NOT BELONG TO THE SAME DOMAIN AS THE SITE pada Contact form 7
    Mengatasi error THIS EMAIL ADDRESS DOES NOT BELONG TO THE SAME DOMAIN AS THE SITE pada Contact form 7 Pernah mengalami error THIS EMAIL A...
  • Mengatasi error 'stderr' was not declared in this scope c++
    halo sobat koding dimanapun anda berada bertemu lagi dengan kami team archives code ... Apakah anda pernah mengalami error 'stder...
  • Menjadikan jFrame Maximize saat pertama kali run
    Apa kabar friend ?? Semoga dalam keadaan sehat wal afiyat semua, Dalam kesempatan yang baik ini kami dari team archives code akan memb...
  • Cara Memotong Charakter dengan php
    Hay juragan sekalian, jumpa lagi dengan kami team archives code yang mudah-mudahan dapat membantu keperluan anda dalam hal php, dan pemba...
  • Cara Gampang Mendaftar adsense Melalui smartphone android, 100% Work
    Halo sahabat sekalian, jumpa lagi dengan kami team archives Code yang akan memberikan penjelasan mengenai cara mendaftar adsense melalui sm...
  • Mengatasi Status Disconnect di Kalkun Terupdate 2018
    Selamat malam dan selamat begadang untuk para mastah sekalian, jangan lupa sruput kopinya sebelum membaca artikel ini, hehe Pada w...
  • Cara Mengatasi REQUIRED: You are not allowed to hide the admin bar
    Haloha pembaca yang budiman dan baik hati, gimana kabarnya..?? Pada kali ini kami akan mengupas tuntas tentang cara mengatasi required...
Copyright © 2014 Archives Code - Powered by Blogger
Template by Mas Sugeng - Versi Seluler