java gui项目_Java – 做大型GUI项目

直接解决我的问题.

你如何做大规模的GUI项目.到目前为止,我还没有在java中做过任何更大的GUI项目,但我现在正在进行的工作变得非常快,而且相当大,现在我被困在一大堆非常烦人和混乱的代码中.

因为我来自web开发领域,我习惯于MVC框架,所以我在我的项目中有3个包模型,其中我保持与whit文件或db交互的类,视图我保留我的类用于Forms或GUI和Controller包我保留我的大多数逻辑.

我被告知要将我的逻辑分开,同时在一个班级和另一个班级的听众中保持行动,但我不知道如何将所有这些联系起来.

到目前为止,我只有一个Controller类,我执行所有关于GUI调用后发生的事情的方法.

package pft.controller;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.JLabel;

import javax.swing.JComboBox;

import javax.swing.JTree;

import java.awt.event.*;

import javax.swing.JProgressBar;

import pft.view.Invoke_GUI;

import pft.model.Events;

import pft.model.Parse;

public class Tower_Controller {

public Tower_Controller() {

}

//Global variables

String isSelected = null;

int hasModules = 0;

int cap = 0;

int cpu = 0;

int shield = 0;

int armor = 0;

public void setName(String name){

this.isSelected = name;

}

public String getName(){

return this.isSelected;

}

public void setCap(int cap){

this.cap = cap;

}

public int getCap(){

return this.cap;

}

public void setCpu(int cpu){

this.cpu = cpu;

}

public int getCpu(){

return this.cpu;

}

public void setShield(int shield){

this.shield = shield;

}

public int getShield(){

return this.shield;

}

public void setArmor(int armor){

this.armor = armor;

}

public int getArmor(){

return this.armor;

}

public void invoke() throws IOException {

Invoke_GUI runnable = new Invoke_GUI();

final JLabel tower_name = runnable.tower_name;

final JComboBox tower_select = runnable.tower_select;

final JTree module_browser = runnable.module_browser;

final JTree selected_modules = runnable.selected_modules;

final JProgressBar cap_bar = runnable.cap_bar;

final JProgressBar cpu_bar = runnable.cpu_bar;

final JLabel em_res = runnable.em;

final JLabel th_res = runnable.thermic;

final JLabel ki_res = runnable.kinetic;

final JLabel ex_res = runnable.explosive;

setTowerName(tower_name, tower_select);

removeTower(tower_name);

runnable.setVisible(true);

}

public void removeTower(final JLabel tower_name) {

tower_name.addMouseListener(new MouseListener() {

@Override

public void mouseClicked(MouseEvent e) {

if (hasModules == 1 & isSelected != null) {

Events evt = new Events();

evt.towerHasModules();

} else if (isSelected == null) {

} else {

tower_name.setText("No Control Tower selected");

isSelected = null;

}

}

@Override

public void mousePressed(MouseEvent e) {

}

@Override

public void mouseReleased(MouseEvent e) {

}

@Override

public void mouseEntered(MouseEvent e) {

}

@Override

public void mouseExited(MouseEvent e) {

}

});

}

public void updateVariables(String name) throws IOException{

Parse tower = new Parse();

String data[] = tower.towerData(name);

Integer x = Integer.valueOf(data[1]).intValue();

setCap(x);

}

public void setTowerName(final JLabel tower_name, final JComboBox tower_select) {

tower_select.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if (isSelected != null) {

Events evt = new Events();

evt.towerSelected(isSelected);

} else {

tower_name.setText(tower_select.getSelectedItem().toString());

setName(tower_name.toString());

try {

updateVariables(tower_name.toString());

} catch (IOException ex) {

Logger.getLogger(Tower_Controller.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

});

}

}

有很多教程和示例如何做小型通常的单类Java GUI,但没有关于如何进行比单个类大的项目的教程或示例.

在此先感谢所有的帮助和

咨询.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值