📄 optionsbrokerjpanel.java
字号:
/*
* OptionsBrokerJPanel.java
*
* Created on April 10, 2008, 7:43 PM
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2008 Cheok YanCheng <yccheok@yahoo.com>
*/
package org.yccheok.jstock.gui;
import java.awt.Frame;
import java.awt.Image;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JFormattedTextField;
import javax.swing.JList;
import javax.swing.ListModel;
import javax.swing.SwingUtilities;
import javax.swing.text.NumberFormatter;
import org.yccheok.jstock.portfolio.BrokingFirm;
/**
*
* @author yccheok
*/
public class OptionsBrokerJPanel extends javax.swing.JPanel implements JStockOptionsObserver {
/** Creates new form OptionsBrokerJPanel */
public OptionsBrokerJPanel() {
initComponents();
this.updateGUIState();
}
private JFormattedTextField getCurrencyJFormattedTextField(double minimum) {
NumberFormat format= NumberFormat.getNumberInstance();
NumberFormatter formatter= new NumberFormatter(format);
formatter.setMinimum(minimum);
formatter.setValueClass(Double.class);
JFormattedTextField field= new JFormattedTextField(formatter);
return field;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jXHeader1 = new org.jdesktop.swingx.JXHeader();
jPanel1 = new javax.swing.JPanel();
jCheckBox1 = new javax.swing.JCheckBox();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList();
jPanel6 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jFormattedTextField1 = getCurrencyJFormattedTextField(0.0);
jFormattedTextField2 = getCurrencyJFormattedTextField(0.0);
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jFormattedTextField3 = getCurrencyJFormattedTextField(0.0);
jPanel4 = new javax.swing.JPanel();
jFormattedTextField4 = getCurrencyJFormattedTextField(0.0);
jFormattedTextField5 = getCurrencyJFormattedTextField(0.0);
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jFormattedTextField6 = getCurrencyJFormattedTextField(0.0);
jPanel5 = new javax.swing.JPanel();
jFormattedTextField7 = getCurrencyJFormattedTextField(0.0);
jFormattedTextField8 = getCurrencyJFormattedTextField(1.0);
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jFormattedTextField9 = getCurrencyJFormattedTextField(0.0);
setPreferredSize(new java.awt.Dimension(485, 471));
setLayout(new java.awt.BorderLayout());
jXHeader1.setDescription("Perform auto broker fee, stamp duty and clearing fee calculation, based on your transaction.");
jXHeader1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/32x32/calc.png"))); // NOI18N
jXHeader1.setTitle("Broker Fee");
add(jXHeader1, java.awt.BorderLayout.NORTH);
jCheckBox1.setText("Auto calculate broker fee, stamp duty and clearing fee");
jCheckBox1.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
jCheckBox1ItemStateChanged(evt);
}
});
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Broking Firm"));
jList1.setModel(new DefaultListModel());
jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
jList1ValueChanged(evt);
}
});
jScrollPane1.setViewportView(jList1);
jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel6.setLayout(new java.awt.BorderLayout());
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jPanel6.add(jLabel1, java.awt.BorderLayout.CENTER);
jButton1.setText("Add...");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Delete");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Edit...");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Broker Fee"));
jFormattedTextField1.setValue(new Double(0.0));
jFormattedTextField2.setValue(new Double(0.0));
jLabel2.setText("Rate (%)");
jLabel3.setText("Maximum Fee");
jLabel4.setText("Minimum Fee");
jFormattedTextField3.setValue(new Double(0.0));
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(jLabel2)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 6, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jFormattedTextField1)
.addComponent(jFormattedTextField2)
.addComponent(jFormattedTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE))
.addContainerGap(37, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jFormattedTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jFormattedTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jFormattedTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(6, Short.MAX_VALUE))
);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Clearing Fee"));
jFormattedTextField4.setValue(new Double(0.0));
jFormattedTextField5.setValue(new Double(0.0));
jLabel5.setText("Rate (%)");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -