Sampaikanlah Walau Satu Ayat

January 27, 2009

JText Area dalam JTable

Filed under: Berbagi Ilmu, Java — talazoft @ 9:40 am

Defaultnya JTable merender JLable sebagai valuenya, dan JTable secara default pun sudah menyadiakan semacam cara untuk mengganti default renderernya. Dalam artikel ini saya akan memberitahukan bagaimana caranya merender JTextArea ke dalam JTable:

Langkah-langkah:
1. Buat class custom JTextArea
Kelas baru custom JTextArea ini harus extends JTextArea. Lalu buat dua buah syncronized method, method yang pertama adalah method yg bisa menambah action listener dengan parameter ActionListener, method meberikutnya adalah method yang tugasnya menghapus/remove action listener dengan parameter ActionListener
2. Buat class custom JTextArea renderer
Kelas ini tugasnya adalah merender custom JTextArea yang kita buat sebelumnya. Kelas ini harus extends custom JTextArea dan meng-implementasikan interface TableCellRenderer
3. Buat class custom renderernya
Kelas ini nantinya akan banyak kita gunakan
4. Setelah semua class selesai di buat selanjutnya kita akan coba menjalankanya

untuk contoh yang sudah saya buat silahkan download disini

January 23, 2009

WE WILL NOT GO DOWN (Song for Gaza)

Filed under: Others — talazoft @ 11:07 am

WE WILL NOT GO DOWN (Song for Gaza)
(Composed by Michael Heart)
Copyright 2009

A blinding flash of white light
Lit up the sky over Gaza tonight
People running for cover
Not knowing whether they’re dead or alive

They came with their tanks and their planes
With ravaging fiery flames
And nothing remains
Just a voice rising up in the smoky haze

We will not go down
In the night, without a fight
You can burn up our mosques and our homes and our schools
But our spirit will never die
We will not go down
In Gaza tonight

Women and children alike
Murdered and massacred night after night
While the so-called leaders of countries afar
Debated on who’s wrong or right

But their powerless words were in vain
And the bombs fell down like acid rain
But through the tears and the blood and the pain
You can still hear that voice through the smoky haze

We will not go down
In the night, without a fight
You can burn up our mosques and our homes and our schools
But our spirit will never die
We will not go down
In Gaza tonight
dari www.michaelheart.com

January 22, 2009

JComboBox, JTextField, and JCheckBox di JTable bagian 2

Filed under: Berbagi Ilmu, Java — talazoft @ 11:45 am

/*
* EachRowEditorExample.java
*
*/

package com.rizka.utils.table;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

/**
*
* @author Rizka Dwitama
*/
public class EachRowEditorExample extends JFrame {

public EachRowEditorExample(){
super(”EachRow Editor Example”);

DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector( new Object[][]{{”Name” ,”MyName”},{”Gender”,”Male”}}, new Object[]{”Column1″,”Column2″});

JTable table = new JTable(dm);
JComboBox comboBox = new JComboBox();
comboBox.addItem(”Male”);
comboBox.addItem(”Female”);
EachRowEditor rowEditor = new EachRowEditor();
rowEditor.add(0, new DefaultCellEditor(new JTextField()));// add JTextField in a single cell, row 0, column 1
rowEditor.add(1, new DefaultCellEditor(comboBox));// add JComboBox in a single cell, row 1, column 1
table.getColumn(”Column2″).setCellEditor(rowEditor);

JScrollPane scroll = new JScrollPane(table);
getContentPane().add( scroll );
setSize( 400, 100 );
setVisible(true);
}

public static void main(String[] args) {
EachRowEditorExample frame = new EachRowEditorExample();
frame.addWindowListener( new WindowAdapter(){
@Override
public void windowClosing( WindowEvent e ) {
System.exit(0);
}
});
}
}

afwan gag ada skrinsotnya hehehe…..

JComboBox, JTextField, and JCheckBox di JTable bagian 1

Filed under: Berbagi Ilmu, Java — talazoft @ 11:44 am

Di bahasa pemrograman java anda dapat menambahkan JComboBox, JCheckBox, dan JTextFiled sebagai pengganti editor default dari table. Yah segitu aja dech kata2 bakunya, yang penting ni sourcenya. Contoh ada di bagian ke dua.

/*
* EachRowEditor.java
*
*/

package com.rizka.utils.table;

import java.awt.Component;
import java.util.EventObject;
import java.util.Hashtable;
import javax.swing.DefaultCellEdi

tor;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;

/**
*
* @author Rizka Dwitama
*/
public class EachRowEditor implements TableCellEditor{

protected Hashtable editors;
protected TableCellEditor editor, defaultEditor;

public EachRowEditor(){
editors = new Hashtable();
}

/*public EachRowEditor(JTextField textField) {
editors = new Hashtable();
defaultEditor = new DefaultCellEditor(textField);
}

public EachRowEditor(JCheckBox checkbox){
editors = new Hashtable();
defaultEditor = new DefaultCellEditor(checkbox);
}

public EachRowEditor(JComboBox comboBox) {
editors = new Hashtable();
defaultEditor = new DefaultCellEditor(comboBox);
} */

public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column){
editor = (TableCellEditor)editors.get(row);
if(editor != null){
return editor.getTableCellEditorComponent(table, value, isSelected, row, column);
}
else{
return null;
}
}

public void add(int row, TableCellEditor editor) {
if(editor!=null){
editors.put(new Integer(row), editor);
}
else{
//nothing to do here
}
}

public Object getCellEditorValue() {
return editor.getCellEditorValue();
}

public boolean isCellEditable(EventObject anEvent) {
//it must be returns true other ways it’ll be error
return true;
}

public boolean shouldSelectCell(EventObject anEvent) {
return editor.shouldSelectCell(anEvent);
}

public boolean stopCellEditing() {
return editor.stopCellEditing();
}

public void cancelCellEditing() {
editor.cancelCellEditing();
}

public void addCellEditorListener(CellEditorListener l) {
editor.addCellEditorListener(l);
}

public void removeCellEditorListener(CellEditorListener l) {
editor.removeCellEditorListener(l);
}

}

Buat Print Preview dgn Java

Filed under: Berbagi Ilmu, Java — talazoft @ 11:19 am

smalem lagi iseng nyari cara buat print preview pake java, alhamdulillah berhasil, nih langsung aja gw kasih sourcenya

/*
* PagePanel.java
*/

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;

/**
* Kelas ini fungsinya buat ngerender sesuatu di simpan dalam JPanel yang bisa di print
*
* @author Rizka Dwitama
*/
public class PagePanel extends JPanel implements Printable
{
public static final Dimension A4_SIZE = new Dimension(595, 842);
public static final Dimension A3_SIZE = new Dimension(842, 595 * 2);
public static final Dimension A2_SIZE = new Dimension(595 * 2, 842 * 2);
public static Dimension DEFAULT_SIZE = A4_SIZE;
private GridLayout grid = new GridLayout(4, 2);
public int id = 0;

public PagePanel(int p_number)
{
initComponents();
this.id=p_number;
}

private void initComponents()
{
grid.setHgap(10);
grid.setVgap(10);
this.setMaximumSize(DEFAULT_SIZE);
this.setMinimumSize(DEFAULT_SIZE);
this.setPreferredSize(DEFAULT_SIZE);
this.setBackground(Color.white);
this.setLayout(grid);
this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
this.setSize(DEFAULT_SIZE);
}

@Override
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.BLUE);
g.drawString(”This is page: “+id, 30, 30);
}

@Override
public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException
{
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
this.paint(g2d);
return (PAGE_EXISTS);
}
}

/*
* PagePanel.java
*/

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
* Kelas ini fungsinya buat nampilin kelas PagePanel skalian aplikasi buat ngejalaninnya
*
* @author Rizka Dwitama
*/
public class PrintPreview extends JFrame
{
private static final long serialVersionUID = 1L;
private BorderLayout borderLayout1 = new BorderLayout();
private FlowLayout flow = new FlowLayout();
private Font font = new Font(”Tahoma”, 0, 11);
private int panelsNo = 2;
private Dimension buttonDimension = new Dimension(120, 25);
private JPanel centerPanel = new JPanel();
private JScrollPane scroll = new JScrollPane(centerPanel);
private PagePanel[] previewPanel = null;
private JPanel operationsPanel = new JPanel();
private JButton nextButton = new JButton(”Next”);
private JButton previousButton = new JButton(”Previous”);
private JButton printButton = new JButton(”Print”);

public PrintPreview(int panelsNo)
{
try
{
this.panelsNo = panelsNo;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
previewPanel = new PagePanel[this.panelsNo];
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}

private void jbInit() throws Exception
{
flow.setHgap(20);
flow.setVgap(20);
centerPanel.setLayout(flow);
centerPanel.setBackground(new Color(51, 51, 51));
centerPanel.setPreferredSize(new Dimension(800, panelsNo * (842 + 40)));

for (int i = 0; i < panelsNo; i++)
{
previewPanel[i] = new PagePanel(i + 1);
centerPanel.add(previewPanel[i], null);
}

printButton.setForeground(Color.green.darker());
printButton.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent evt)
{
printActionPerformed(evt);
}
});

operationsPanel.setPreferredSize(new Dimension(10, 40));
operationsPanel.add(previousButton, null);
operationsPanel.add(nextButton, null);
operationsPanel.add(printButton, null);

Component comps[] = operationsPanel.getComponents();
for (Component comp : comps)
{
((JButton) comp).setFont(font);
((JButton) comp).setPreferredSize(buttonDimension);
}
this.setTitle(”Print”);
this.getContentPane().setLayout(borderLayout1);
this.setBounds(new Rectangle(10, 10, 650, 930));
this.getContentPane().add(scroll, BorderLayout.CENTER);
this.getContentPane().add(operationsPanel, BorderLayout.NORTH);
}

private void printActionPerformed(java.awt.event.ActionEvent event)
{

PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pf = printJob.defaultPage();
pf.setOrientation(PageFormat.PORTRAIT);
Book book = new Book();
// First Page
book.append(previewPanel[0], pf);
// Second Page
book.append(previewPanel[1], pf);

printJob.setPageable(book);

if (printJob.printDialog())
{
try
{
printJob.print();
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}

public static void main(String[] strings)
{
PrintPreview pr = new PrintPreview(2);
pr.setVisible(true);
}
}

Powered by WordPress