Program menggunakan Bahasa Java dalam Netbeans

Minggu, 22 April 2018

Program Tombol mengendalikan Teks dengan Java Netbeans

April 22, 2018 Posted by Abdul Rohman No comments
Dibawah ini adalah program membuat tombol yang dapat mengendalikan teks untuk bisa bergeser ke kiri dan ke kanan dengan Java Netbeans

Untuk membuat program tersebut diperlukan 2 kelas/java yaitu

  1. DemoTombol
  2. PanelPesan
DemoTombol.java
 import java.awt.*;
 import java.awt.event.ActionListener;
 import java.awt.event.ActionEvent;
 import javax.swing.*;

 public class DemoTombol extends JFrame {
 // Menciptakan panel untuk menampilkan pesan
 protected PanelPesan panelPesan
 = new PanelPesan("JAVA itu Tangguh!");

 // Mendeklarasikan dua tombol untuk menggerakkan pesan ke kiri dan ke kanan
 private JButton jbtKiri = new JButton("<=");
 private JButton jbtKanan = new JButton("=>");

 public static void main(String[] args) {
 DemoTombol frame = new DemoTombol();
 frame.setTitle("DemoTombol");
 frame.setSize(250, 100);
 frame.setLocationRelativeTo(null); // Pusat frame
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 frame.setVisible(true);
 }

 public DemoTombol() {
 // Menetapkan warna latar belakang untuk panelPesan
 panelPesan.setBackground(Color.white);

 // Menciptakan Panel jpTombol untuk memuat dua tombol "<=” dan “right =>"
 JPanel jpTombol = new JPanel();
 jpTombol.add(jbtKiri);
 jpTombol.add(jbtKanan);

 // Menetapkan papankunci mnemonik
 jbtKiri.setMnemonic('I');
 jbtKanan.setMnemonic('A');

 // Menetapkan ikon dan menghapus teks
  jbtKiri.setIcon(new ImageIcon("Gambar/kiri.gif"));
  jbtKanan.setIcon(new ImageIcon("Gambar/kanan.gif"));
  jbtKiri.setText(null);
  jbtKanan.setText(null);

 // Menetapkan perangkat tool tip text pada tombol
 jbtKiri.setToolTipText("Menggerakkan pesan ke kiri");
 jbtKanan.setToolTipText("Menggerakkan pesan ke kanan");

 // Menampilkan panel di dalam frame
 setLayout(new BorderLayout());
 add(panelPesan, BorderLayout.CENTER);
 add(jpTombol, BorderLayout.SOUTH);

 // Meregistrasi listener dengan tombol
 jbtKiri.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 panelPesan.geserKiri();
 }
 });
 jbtKanan.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 panelPesan.geserKanan();
 }
 });
 }
 }

PanelPesan.java
 import java.awt.FontMetrics;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import javax.swing.JPanel;

 public class PanelPesan extends JPanel{
 /** Pesan yang akan ditampilkan*/
 private String pesan = "JAVA itu Tangguh!";

 /** Koordinat-x dimana pesan ditampilkan */
 private int koordinatX = 20;

  /** Koordinat-y dimana pesan ditampilkan */
 private int koordinatY = 20;

 /** Mengindikasikan apakah pesan ditampilkan di tengah atau tidak */
 private boolean ditengah;

 /** Interval untuk menggerakkan pesan secara horisontal dan
     secara vertikal */
 private int interval = 10;

 /** Menciptakan properti-properti default */
 public PanelPesan(){
 }

 /** Menciptakan suatu panel pesan dengan pesan tertentu */
 public PanelPesan(String pesan){
 this.pesan = pesan;
 }

 /** Mengembalikan pesan */
 public String dapatPesan() {
 return pesan;
 }

 /** Menetapkan suatu pesan baru */
 public void tetapkanPesan(String pesan) {
 this.pesan = pesan;
 repaint();
 }

 /** Mengembalikan koordinatX */
 public int dapatKoordinatX() {
 return koordinatX;
 }

 /** Menetapkan suatu koordinatX baru */
 public void tetapkanKoordinatX(int x) {
 this.koordinatX = x;
 repaint();
 }

 /** Mengembalikan koordinatY */
 public int dapatKoordinatY() {
 return koordinatY;
 }

 /** Menetapkan suatu koordinatY baru */
 public void tetapkanKoordinatY(int y) {
 this.koordinatY = y;
 repaint();
 }

 /** Mengembalikan properti ditengah */
 public boolean apaDitengah() {
 return ditengah;
 }

 /** menetapkan nilai ditengah yang baru */
 public void tetapkanDitengah(boolean ditengah) {
 this.ditengah = ditengah;
 repaint();
 }

 /** Mengembalikan interval */
 public int dapatInterval() {
 return interval;
 }

 /** Menetapkan suatu interval baru */
 public void tetapkanInterval(int interval) {
 this.interval = interval;
 repaint();
 }

 /** Menampilkan pesan */
 protected void paintComponent(Graphics g) {
 super.paintComponent(g);

 if (ditengah){
 // Mendapatkan metrik font untuk font saat ini
 FontMetrics fm = g.getFontMetrics();

 // Mencari lokasi tengah untuk menampilkan
 int stringWidth = fm.stringWidth(pesan);
 int stringAscent = fm.getAscent();
 // Mencari posisi karakter paling-kiri dalam baseline
 koordinatX = getWidth() / 2 - stringWidth / 2;
 koordinatY = getHeight() / 2 + stringAscent / 2;
 }

 g.drawString(pesan, koordinatX, koordinatY);
 }

 /** Menggerakkan pesan ke kiri */
 public void geserKiri() {
 koordinatX -= interval;
 repaint();
 }

 /** Menggerakkan pesan ke kanan */
 public void geserKanan() {
 koordinatX += interval;
 repaint();
 }

 /** Menggerakkan pesan ke atas */
 public void geserAtas() {
 koordinatY -= interval;
 repaint();
 }


 /** Menggerakkan pesan ke bawah */
 public void geserBawah() {
 koordinatY += interval;
 repaint();
 }

 /** Mengoverride metode preferredSize */
 public Dimension getPreferredSize() {
 return new Dimension(200, 30);
 }
  }

Hasilnya:

0 komentar:

Posting Komentar

close
==[ Klik disini 1X ] [ Close ]==