MVC pake GUI SWING Java….

06/06/2009 at 3:24 pm Tinggalkan komentar

Pada tutorial postingan ini sebenernya gw mw curhat…. hehehe. Maksudnya klo ada yang lebih expert tentang java dengan ini gw minta petunjuk… gmn ney cara ngembangin skripsian gw… Untuk development MVC ini memang sangat menarik… tapi klo dodol ky gw ya agak sulit juga.😀

Pada swing ini topik utamanya adalah pembuatan perkalian bilangan yang di input di kalikan dengan total… Penjelasan tentang MVC sebelumnya ude gw terangin apa itu MVC. Klik aja menu Java MVC di main menu blog gw.

langsung aja…

Tolong baca ney sedikit panduan… sama gw juga baca ini http://csis.pace.edu/~bergin/mvc/mvcgui.html …Tutorial ini mengulas sedikit tentang teknologi java GUI…

Main class dari program ini adalah dengan nama file CalcMVC.java

package com.acho.mvc;

public class CalcMVC {
//pemanggilan method dengan menciptakan model, view dan controller
public static void main(String[] args){
CalcModel model = new CalcModel();
CalcView view = new CalcView(model);
new CalcController(model, view);
view.setVisible(true);
}
}

Pada file utama ini adalah generator pembangkit yang di gunakan atau main dari program swing java. Manfat dari file ini sebagai pemanggil dari  berbagai fungsi-fungsi yang lain dan semuanya saling terintegrasi….dengan arsitektur MVC.

Selanjutnya adalah file model yang digunakan dalam program ini adalah CalcModel.java

package com.acho.mvc;

import java.math.BigInteger;

public class CalcModel {
//… Constants
private static final String INITIAL_VALUE = “1”;
//… Member variable defining state of calculator.
private BigInteger m_total;  // The total current value state.
//============================================ constructor
/** Constructor */
CalcModel() {
reset();
}

//============================================ reset
/** Reset to initial value. */
public void reset() {
m_total = new BigInteger(INITIAL_VALUE);
}

//============================================ multiplyBy
/** Multiply current total by a number.
*@param operand Number (as string) to multiply total by.
*/
public void multiplyBy(String operand) {
m_total = m_total.multiply(new BigInteger(operand));
}

//============================================ setValue
/** Set the total value.
*@param value New value that should be used for the calculator total.
*/
public void setValue(String value) {
m_total = new BigInteger(value);
}

//============================================ getValue
/** Return current calculator total. */
public String getValue() {
return m_total.toString();
}
}

Pada bagian ini adalah model dari aplikasi yang akan dibuat. Model ini nantinya akan digunakan untuk mengatur fungsi-fungsi untuk melakukan penghitungan perkalian.

Sealnjutnya adalah bagian tampilan display atau view… dengan nama file CalcView.java

package com.acho.mvc;
//
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class CalcView extends JFrame {

/**pada bagian ini adalah pembuatan component yang digunakan
* 2 textfield untuk bagian input dan output
* 2 button untuk tombol eksekusi pengkalian dan dan reset total
**/
private static final long serialVersionUID = 1L; //tidak pengaruh dengan main program
private static final String INITIAL_VALUE = “1”;
//—components yang digunakan untuk display gui
private JTextField m_userInputTf = new JTextField(5);
private JTextField m_totalTf = new JTextField(20);
private JButton m_multiplyBtn = new JButton(“Multiply”);
private JButton m_clearBtn = new JButton(“Clear”);

private CalcModel m_model;

//— constructor
CalcView(CalcModel model){
//— setup logika
m_model = model;
m_model.setValue(INITIAL_VALUE);
//… Initialize components
m_totalTf.setText(m_model.getValue());
m_totalTf.setEditable(false);

//… Layout the components.
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
content.add(new JLabel(“Input”));
content.add(m_userInputTf);
content.add(m_multiplyBtn);
content.add(new JLabel(“Total”));
content.add(m_totalTf);
content.add(m_clearBtn);

//… finalize layout
this.setContentPane(content);
this.pack();

this.setTitle(“Simple Calc – MVC”);
// The window closing event should probably be passed to the
// Controller in a real program, but this is a short example.
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
void reset() {
m_totalTf.setText(INITIAL_VALUE);
}

String getUserInput() {
return m_userInputTf.getText();
}

void setTotal(String newTotal) {
m_totalTf.setText(newTotal);
}

void showError(String errMessage) {
JOptionPane.showMessageDialog(this, errMessage);
}

void addMultiplyListener(ActionListener mal) {
m_multiplyBtn.addActionListener(mal);
}

void addClearListener(ActionListener cal) {
m_clearBtn.addActionListener(cal);
}

}

Pada bagian ini file CalcView.java ini berfungsi sebagai design dari tampilan yang di buat.

dan yang terakhir adalah pengatur serangan dari aplikasi dengan nama file CalcController.java

package com.acho.mvc;
import java.awt.event.*;

public class CalcController {

//… The Controller needs to interact with both the Model and View.
private CalcModel m_model;
private CalcView  m_view;

//========================================================== constructor
/** Constructor */
CalcController(CalcModel model, CalcView view) {
m_model = model;
m_view  = view;

//… Add listeners to the view.
view.addMultiplyListener(new MultiplyListener());
view.addClearListener(new ClearListener());
}

////////////////////////////////////////// inner class MultiplyListener
/** When a mulitplication is requested.
*  1. Get the user input number from the View.
*  2. Call the model to mulitply by this number.
*  3. Get the result from the Model.
*  4. Tell the View to display the result.
* If there was an error, tell the View to display it.
*/
class MultiplyListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String userInput = “”;
try {
userInput = m_view.getUserInput();
m_model.multiplyBy(userInput);
m_view.setTotal(m_model.getValue());

} catch (NumberFormatException nfex) {
m_view.showError(“Bad input: ‘” + userInput + “‘”);
}
}
}//end inner class MultiplyListener

//////////////////////////////////////////// inner class ClearListener
/**  1. Reset model.
*   2. Reset View.
*/
class ClearListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
m_model.reset();
m_view.reset();
}
}// end inner class ClearListener

}

Controler event diatur oleh bagian ini, Trus aplikasinya klo ud jadi tampilannya seperti ini

mvc-gui

untuk aplikasi yang saya buat ini bisa d donlot di tempat share……. Nah klo ada yang coba untuk mengembangkan aplikasi MVC tolong kontek2an kita bisa belajar bareng…😀.

Entry filed under: MVC. Tags: , , .

Cara cepat jadi programmer Buat Simple Servlet menggunakan Eclipse IDE

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Gw Ney..


  • Chat With Me
  • Email Yadi Acho

  • For Education Only....

    Blog Stats

    • 5,679 hits

    %d blogger menyukai ini: