Package vue

Source Code of vue.MotherFrame

/**
*
*/
package vue;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;

import tool.Language;
import controleur.SQCalculator;

/**
* @author Patrick-Edouard
*
*/
public class MotherFrame extends JFrame implements ActionListener{

  /**
   *
   */
  private static final long serialVersionUID = 1L;
  private double actualSQ;
  private Language la;
  private SQCalculator sq;
  private JPanel panel;
  private JLabel labelUnspend;
  private JLabel labelIncome;
  private JLabel labelSQ;
  private JTextField textUnspend;
  private JTextField textIncome;
  private JButton boutonCalcul;
  private JButton boutonSave;
  private JMenuBar menuBar;
  private JMenu menuSQ;
  private JMenu menuAbout;
  private JMenuItem menuItemAbout;
  private JMenuItem menuLang;
  private JMenuItem menuGraph;
  private JMenuItem menuSQList;
 
  public MotherFrame()
  {
    super();
   
    this.createWindow();
   
    this.setSq(new SQCalculator());
  }
 
  private void createWindow()
  {
    //window
   
    this.la = new Language();
    this.setTitle(this.la.getText("title"));
    this.setBounds(0, 0, 500, 200);
   
   
    //menus
   
    this.menuBar = new JMenuBar();
    this.menuSQ = new JMenu(this.la.getText("menu_sq"));
    this.menuAbout = new JMenu(this.la.getText("menu_about"));
   
    this.menuItemAbout = new JMenuItem(this.la.getText("menu_item_about"));
    this.menuItemAbout.addActionListener(this);
    this.menuLang = new JMenuItem(this.la.getText("menu_item_lang"));
    this.menuLang.addActionListener(this);
    this.menuGraph = new JMenuItem(this.la.getText("menu_item_graph"));
    this.menuGraph.addActionListener(this);
    this.menuSQList = new JMenuItem(this.la.getText("menu_item_list"));
    this.menuSQList.addActionListener(this);
   
    this.menuAbout.add(this.menuItemAbout);
   
    this.menuSQ.add(this.menuLang);
    this.menuSQ.add(this.menuGraph);
    this.menuSQ.add(this.menuSQList);
   
    this.menuBar.add(this.menuSQ);
    this.menuBar.add(this.menuAbout);
   
    this.setJMenuBar(this.menuBar);
   
    //things
   
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLayout(new GridLayout());
   
    //panels & buttons
   
    this.panel = new JPanel();
   
    this.labelIncome = new JLabel(this.la.getText("income"));
    this.labelUnspend = new JLabel(this.la.getText("unspend"));
    this.labelSQ = new JLabel();
   
    this.boutonCalcul = new JButton(this.la.getText("calcul"));
    this.boutonCalcul.addActionListener(this);
    this.boutonSave = new JButton(this.la.getText("main_save"));
    this.boutonSave.addActionListener(this);
   
    this.textIncome = new JTextField(10);
    this.textIncome.setBounds(50, 50, 50, 100);
    this.textUnspend = new JTextField(10);
    this.textUnspend.setBounds(50, 100, 50, 100);
   
    this.panel.add(this.labelIncome);
    this.panel.add(this.textIncome);
    this.panel.add(this.labelUnspend);
    this.panel.add(this.textUnspend);
    this.panel.add(this.boutonCalcul);
    this.panel.add(labelSQ);
   
    this.setContentPane(panel);
   
    this.setVisible(true);
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    if(e.getSource()==this.boutonCalcul)
    {
      this.boutonCalculClicked();
    }
    if(e.getSource()==this.boutonSave)
    {
      this.boutonSaveClicked();
    }
    if(e.getSource()==this.menuItemAbout)
    {
      this.menuAboutClicked();
    }
    if(e.getSource()==this.menuLang)
    {
      this.menuLangClicked();
    }
    if(e.getSource()==this.menuGraph)
    {
      this.menuGraphClicked();
    }
    if(e.getSource()==this.menuSQList)
    {
      this.menuSQListClicked();
    }
  }
 
 
  private void menuAboutClicked()
  {
    JDialog dialogAbout = new JDialog();
    dialogAbout.setTitle(this.la.getText("menu_item_about"));
    JLabel text = new JLabel();
    text.setText(this.la.getText("text_about"));
    dialogAbout.getContentPane().add(text);
    dialogAbout.pack();
    dialogAbout.setVisible(true);
  }
 
  private void menuLangClicked()
  {
    this.la.editLang();
  }
 
  private void menuGraphClicked()
  {
    double[] listY = getSq().getSQ();
    double[] listX = new double[listY.length];
    for(int i=0;i<listY.length;i++)
    {
      listX[i]=i+1;
    }
    new Graph(listX,listY);
  }
 
  private void menuSQListClicked()
  {
    new list(this);
  }
 
  private void boutonCalculClicked()
  {
    //if(!(this.textUnspend.getText()!="")&&(this.textIncome.getText()!=""))
    {
      this.actualSQ = this.getSq().calculSQ(Double.parseDouble(this.textUnspend.getText()), Double.parseDouble(this.textIncome.getText()));
      this.labelSQ.setText(this.la.getText("yoursq")+" "+this.actualSQ+"");
      this.panel.add(this.boutonSave);
    }
  }
  private void boutonSaveClicked()
  {
    this.getSq().saveSQ(this.actualSQ);
  }
 
 
 
  public static void main(String[] args)
  { 
    if(args.length == 1)
    {     
      if(args[0]=="lang")
      {
        Language la = new Language();
        la.editLang();
      }
    }
    new MotherFrame();
  }

  /**
   * @return the sq
   */
  public SQCalculator getSq() {
    return sq;
  }

  /**
   * @param sq the sq to set
   */
  public void setSq(SQCalculator sq) {
    this.sq = sq;
  }
}
TOP

Related Classes of vue.MotherFrame

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.