Focus mode

Araç Kiralama Projesi

Verilerin Arayüzde Yönetilmesi

Admin View sınıfının oluşturulması için öncelikle "AdminView" adında bir sınıf tanımlanır ve bu sınıf, JFrame sınıfından extend edilir. Sınıfın constructor metodu, bir "User" parametresi alarak bu kullanıcıya ait bir instance oluşturur. Ayrıca, pencereyi kapatmak için "dispose()" metodu kullanılır.

Bununla birlikte, genel bir "Layout" sınıfı tanımlanır. Bu sınıf, JFrame yerine JPanel sınıfından extend edilir ve genel bir yapı sunması hedeflenir. "LoginView" ve "AdminView" sınıfları, bu "Layout" sınıfından extend edilerek genel bir yapı oluşturulur. Bu sayede, sınıflar arasındaki tekrar azaltılır ve "initializeGUI" metodu aracılığıyla GUI'nin oluşturulması sağlanır.

 public void guiInitilaze(int width, int height) {
    this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    this.setTitle("Rent a Car");
    this.setSize(width, height);
    this.setLocation(Helper.getLocationPoint("x", this.getSize()), Helper.getLocationPoint("y", this.getSize()));
    this.setVisible(true);
  }

Kullanıcı bilgilerinin alınması için "UserManager" sınıfından "findByLogin" metodu kullanılır. "LoginView" sınıfında bulunan "login" metodu, kullanıcının giriş yapmasını sağlar. Giriş yapıldığında "AdminView" sınıfı oluşturulur ve bu kullanıcıya bağlanır.

User loginUser = this.userManager.findByLogin(this.fld_username.getText(), this.fld_pass.getText());
if (loginUser == null) {
  Helper.showMsg("notFound");
} else {
  AdminView adminView = new AdminView(loginUser);
  dispose();
}

Admin View içinde hoş geldiniz mesajı için bir "JLabel" eklenir ve iki panel oluşturulur. Birinci panel, kullanıcı bilgilerini göstermek için kullanılırken, ikinci panel markaları göstermek ve çıkış yapmak için kullanılır. Marka bilgilerini göstermek için bir tablo eklenir ve bu tablo üzerinde işlemler yapmak için bir menü oluşturulur.

this.lbl_welcome.setText("Hoşgeldiniz : " + this.user.getUsername());

"Brand" ve "BrandManager" sınıfları, marka bilgilerini temsil eden bir entity sınıfı ve bu bilgileri yöneten bir sınıf olarak tanımlanır. "tmdl_brand" adında, "DefaultTableModel" sınıfından türetilen bir model oluşturularak marka bilgileri bu modele eklenir.

private DefaultTableModel tmdl_brand = new DefaultTableModel();
private BrandManager brandManager;
this.brandManager = new BrandManager();

public void loadBrandTable() {
  Object[] col_brand = {"Marka ID", "Marka Adı"};
  ArrayList<Object[]> brandList = this.brandManager.getForTable(col_brand.length);
  this.createTable(this.tmdl_brand, this.tbl_brand, col_brand, brandList);
}

Tablodaki herhangi bir satıra sağ tıklandığında açılan popup menü, yeni marka eklemek için bir seçenek içerir. Seçilen satırın indisini tutan "selectedRow" değişkeni üzerinden işlemler gerçekleştirilir. Fare tıklamalarını dinlemek için "MouseListener" kullanılır ve tablonun üzerinde yapılan işlemler bu listener aracılığıyla gerçekleştirilir.

public void tableRowSelect(JTable table){
  table.addMouseListener(new MouseAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
      int selected_row = table.rowAtPoint(e.getPoint());
      table.setRowSelectionInterval(selected_row, selected_row);
    }
  });
}

Bu adımlar, genel olarak bir GUI uygulamasının oluşturulması, sınıflar arası entegrasyon, tablo modeli kullanımı ve popup menü ile tablo üzerindeki işlemleri içermektedir.

Comments

You need to enroll in the course to be able to comment!