Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Kamis, 17 Maret 2011

Layout Manager BorderLayout

Border layout merupakan default layout pada windows, menghasilkan 5 area untuk meletakan komponen, 4 area ini diberi nama sisi EAST, WEST NORTH, SOTH, dengan jarak menuju ke area tengah (CENTER), ketika menambahkan komponen kita harus menentukan area dari komponen tersebut, sesuai 5 area yang ada, urutan tidak penting pada layout ini. ukuran komponen akan berpengaruh pada ukuran parentnta(Frame)

import java.awt.*;
import javax.swing.*;


public class LayoutBorderLayout extends JFrame{
    public LayoutBorderLayout(){
        setTitle("Layout Border Layout");
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // mendapatkan ukuran layar
        int w = 600;
        int h = 600;
        int x = ((int)dim.getWidth() - w) / 2; // mendapatkan posisi x agar berada tepat ditengah layar
        int y = ((int)dim.getHeight() - h) /2; // mendapatkan posisi y agar berada tepat ditengah layar
        setBounds(x,y,w,h); // menset frame ke tengah layar
        Container con = getContentPane();
        JTextArea  textarea = new JTextArea("CENTER", w, y);
        JButton but1 = new JButton("EAST");
        JButton but2 = new JButton("WEST");
        JButton but3 = new JButton("SOUTH");
        JButton but4 = new JButton("NORTH");


        con.add(textarea,BorderLayout.CENTER);
        con.add(but1,BorderLayout.EAST);
        con.add(but2,BorderLayout.WEST);
        con.add(but3,BorderLayout.SOUTH);
        con.add(but4,BorderLayout.NORTH);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);//
        setVisible(true);
    }
public static void main(String [] args){
        LayoutBorderLayout borderlayout = new LayoutBorderLayout();
    }
}

Gbr Border layout sebelum reseize:

Gbr Border Layout Setelah Resize

Rabu, 16 Maret 2011

Layout Manager GridLayout

digunakan untuk mengatur komponen pada layout dalam baris dan kolom , sama seperti flowlayout, komponen  akan diletakan sesuai urutan komponen ditambahkan, dimulai dari baris pertama, jika tidak mencukupi akan diset ke baris berikutnya, ukuran komponen akan menyesuaikan ukuran containernya, akan membesar jika ukuran frame dilebarkan, begitu juga sebaliknya


import java.awt.*;
import javax.swing.*;


public class LayoutGridLayout extends JFrame{
    public LayoutGridLayout(){
        setTitle("Layout GridLayout");
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // mendapatkan ukuran layar
        int w = 600;
        int h = 600;
        int x = ((int)dim.getWidth() - w) / 2; // mendapatkan posisi x agar berada tepat ditengah layar
        int y = ((int)dim.getHeight() - h) /2; // mendapatkan posisi y agar berada tepat ditengah layar
        setBounds(x,y,w,h); // menset frame ke tengah layar
        Container con = getContentPane();
        setLayout(new GridLayout(2,0));
        JPanel panelTanpaGap  = new JPanel();
        panelTanpaGap.setLayout(new GridLayout(2,5));
        // Grid Layout Tanpa Gap antar komponen
        for (int i=0;i<=10;i++){
            panelTanpaGap.add(new JButton("Tombol ke-"+ i));
        }
       
        getContentPane().add(panelTanpaGap);


         JPanel panelDenganGap  = new JPanel();
         // Grid Layout Dengan Gap antar komponen
        panelDenganGap.setLayout(new GridLayout(2,5,10,25));
        for (int i=0;i<=10;i++){
            panelDenganGap.add(new JButton("Tombol ke-"+ i));
        }


        getContentPane().add(panelDenganGap);
        // setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);//
        setVisible(true);
    }
public static void main(String [] args){
        LayoutGridLayout gridlayout = new LayoutGridLayout();
    }
}


Gridlayout Kondisi awal:


GridLayout Setelah Resize:

Layout Manager FlowLayout

Layout dimana komponen akan menyesuaikan posisinya sesuai ukuran frame atau panel(container), jika lebarnya tidak cukup untuk memuat sebuah komponen maka akan dipindahkan kebawah. ukuran komponen yang dimuat tidak berubah

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LayoutFlowLayout extends JFrame{


    LayoutFlowLayout(){
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // mendapatkan ukuran layar
        int w = 600;
        int h = 600;
        int x = ((int)dim.getWidth() - w) / 2; // mendapatkan posisi x agar berada tepat ditengah layar
        int y = ((int)dim.getHeight() - h) /2; // mendapatkan posisi y agar berada tepat ditengah layar
        setBounds(x,y,w,h); // menset frame ke tengah layar
        Container con = getContentPane(); // mendapatkan default panel dari frame
        con.setLayout(new GridLayout(5,0));
        
        //Flow Layout LEFT
        JPanel panelleft  = new JPanel();
        panelleft.setLayout(new FlowLayout(FlowLayout.LEFT));
        for (int i=0;i<=10;i++){
            panelleft.add(new JButton("Tombol ke-"+ i));
        }
        con.add(panelleft);


        //Flow Layout RIGHT
        JPanel panelright  = new JPanel();
        panelright.setLayout(new FlowLayout(FlowLayout.RIGHT));
        
        for (int i=0;i<=10;i++){
            panelright.add(new JButton("Tombol ke-"+ i));
        }
        con.add(panelright);


        //Flow Layout CENTER
        JPanel panelcenter  = new JPanel();
        panelcenter.setLayout(new FlowLayout(FlowLayout.CENTER,2,2));


        for (int i=0;i<=10;i++){
            panelcenter.add(new JButton("Tombol ke-"+ i));
        }
        con.add(panelcenter);


       
  //Flow Layout LEADING
        JPanel panelleading  = new JPanel();
        panelleading.setLayout(new FlowLayout(FlowLayout.LEADING));


        for (int i=0;i<=10;i++){
            panelleading.add(new JButton("Tombol ke-"+ i));
        }
        con.add(panelleading);
        

        //Flow Layout TRAILING
        JPanel paneltrailing  = new JPanel();
        paneltrailing.setLayout(new FlowLayout(FlowLayout.TRAILING));


        for (int i=0;i<=10;i++){
            paneltrailing.add(new JButton("Tombol ke-"+ i));
        }
        con.add(paneltrailing);


        // setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);//
        setVisible(true);


    }
    public static void main(String [] args){
        LayoutFlowLayout flowlayout = new LayoutFlowLayout();
    }
}

Senin, 28 Februari 2011

Java Bitwise operator

/**
 * @(#)Bitwise.java
 *
 *
 * @author mr frans rudolf banjarnahor
 * @version 1.00 2011/2/27
 */

public class Bitwise {
       
    /**
     * Creates a new instance of <code>Bitwise</code>.
     */
    public Bitwise() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // dapat diaplikasi kan pada tipe data int, long, short, char,dan byte untuk melakukan operasi pada bilangan biner(bit)
        //Bitwise logik or(|)  and(&) not(~) xor(^)

//      A    B    A | B        A & B         A ^ B         ~A
//        0    0    0            0             0             1
//        1    0    1            0             1             0
//        0    1    1            0             1             1
//        1    1    1            1             0             0
       
        Byte [] A = {0,1,0,1};
        Byte [] B = {0,0,1,1};
        System.out.println("Logical AND");
        int i=0;
        System.out.println("A\t&\tB\tA&B");
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x&B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical OR");
        System.out.println("A\t&\tB\tA&B");
        i=0;
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x|B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical XOR");
        System.out.println("A\t&\tB\tA&B");
        i=0;
        for (Byte x:A)
        {
            System.out.println(x +"\t\t"+B[i]+"\t"+(x^B[i]));
            i++;
        }
       
        System.out.println("");
        System.out.println("Logical NOT");
        System.out.println("A\t~A");
        i=0;
        for (byte x:A)
        {
            System.out.println(x+"\t"+(~x));
            i++;
        }
       
        System.out.println("");
        System.out.println("Shift LEFT artinya geser kekiri sejumlah y bit");
        Integer X = 2;
        Integer y = 2;
        System.out.println("X="+X+"(biner)\t\t\ty\t\tX<<y");
        System.out.println(Integer.toBinaryString(X) + "\t\t\t\t" + y + " bit\t\t" +  Integer.toBinaryString(X<<y) + "(" + (X<<y) + " int)");
       
       
        System.out.println("");
        System.out.println("Shift LEFT artinya geser kekiri sejumlah y bit");
        X = 64;
        y = 4;
        System.out.println("X="+X+"(biner)\t\t\ty\t\tX>>y");
        System.out.println(Integer.toBinaryString(X) + "\t\t\t" + y + " bit\t\t" +  Integer.toBinaryString(X>>y) + "(" + (X>>y) + " int)");
       
       
    }
}

hasil:
Logical AND
A   &   B   A&B
0       0   0
1       0   0
0       1   0
1       1   1

Logical OR
A   |   B   A|B
0       0   0
1       0   1
0       1   1
1       1   1

Logical XOR
A   ^   B   A^B
0       0   0
1       0   1
0       1   1
1       1   0

Logical NOT
A   ~A
0   -1
1   -2
0   -1
1   -2

Shift LEFT artinya geser kekiri sejumlah y bit
X=2(biner)          y       X<<y
10              2 bit       1000(8 int)

Shift RIGHT artinya geser kekanan sejumlah y bit
X=64(biner)         y       X>>y
1000000         4 bit       100(4 int)