⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 limitprintinfopanel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 JAVA
字号:
package jp.co.ntl.swing.ext.user.limitprint;

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

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import javax.swing.JLabel;
import javax.swing.SpringLayout;

import jp.co.ntl.limitprint.LimitPrintInfo;
import jp.co.ntl.preference.PreferenceInfo;
import jp.co.ntl.swing.SpringUtilities;
import jp.co.ntl.swing.ext.AbstractDetailInfoPanel;

public class LimitPrintInfoPanel extends AbstractDetailInfoPanel implements ActionListener {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private JLabel			lblRestockTime;
	private JComboBox		cmbRestockTime;
	private JLabel			lblRestockTimeUnit;
	private JComboBox		cmbRestockDate;
	private JLabel			lblRestockDateUnit;
	private JComboBox		cmbRestockWeek;
	private JRadioButton	radioUseDate;
	private JRadioButton	radioUseWeek;
	
	private LimitPrintInfo	lpInfo;

	public LimitPrintInfoPanel(boolean modify, LimitPrintInfo lpInfo) {
		super(modify, new Object[] { lpInfo });
	}
	
	protected void setParams(Object[] params) {
		this.lpInfo = (LimitPrintInfo)params[0];
	}

	protected void buildComponents() {
		setLayout(new SpringLayout());
		
		lblRestockTime = new JLabel(Resource.getString(Resource.LIMITPRINTINFO_RESTOCKTIME));
		add(lblRestockTime);
		
		String[]	txt = new String[24];
		for (int i = 0; i < txt.length; i++) {
			txt[i] = String.valueOf(i);
		}
		cmbRestockTime = new JComboBox(txt);
		add(cmbRestockTime);
		
		lblRestockTimeUnit = new JLabel(Resource.getString(Resource.RESTOCKTIME_UNIT));
		add(lblRestockTimeUnit);
		
		ButtonGroup	bg = new ButtonGroup();
		
		radioUseDate = new JRadioButton(Resource.getString(Resource.LIMITPRINTINFO_RESTOCKDATE_USE_DAY), true);
		add(radioUseDate);
		bg.add(radioUseDate);
		
		txt = new String[31];
		for (int i = 0; i < txt.length; i++) {
			txt[i] = String.valueOf(i + 1);
		}
		cmbRestockDate = new JComboBox(txt);
		add(cmbRestockDate);
		
		lblRestockDateUnit = new JLabel(Resource.getString(Resource.RESTOCKDATE_UNIT));
		add(lblRestockDateUnit);
		
		radioUseWeek = new JRadioButton(Resource.getString(Resource.LIMITPRINTINFO_RESTOCKDATE_USE_WEEK), false);
		add(radioUseWeek);
		bg.add(radioUseWeek);
		
		txt = new String[] {
				Resource.getString(Resource.WEEK_SUN),
				Resource.getString(Resource.WEEK_MON),
				Resource.getString(Resource.WEEK_TUE),
				Resource.getString(Resource.WEEK_WED),
				Resource.getString(Resource.WEEK_THU),
				Resource.getString(Resource.WEEK_FRI),
				Resource.getString(Resource.WEEK_SAT),
		};
		cmbRestockWeek = new JComboBox(txt);
		add(cmbRestockWeek);
		
		JLabel	lblDummy = new JLabel();
		add(lblDummy);
		
		SpringUtilities.makeCompactGrid(this, getComponentCount() / 3, 3, 10, 10, 10, 10);
		
		radioUseDate.addActionListener(this);
		radioUseWeek.addActionListener(this);
	}
	
	private void setItemState() {
		switch (lpInfo.getLimitPeriod()) {
		case LimitPrintInfo.PERIOD_DAY:
			lblRestockTime.setEnabled(true);
			cmbRestockTime.setEnabled(true);
			lblRestockTimeUnit.setEnabled(true);
			break;
		case LimitPrintInfo.PERIOD_MONTH:
		case LimitPrintInfo.PERIOD_WEEK:
			lblRestockTime.setEnabled(true);
			cmbRestockTime.setEnabled(true);
			lblRestockTimeUnit.setEnabled(true);
			break;
		default:
			lblRestockTime.setEnabled(false);
			cmbRestockTime.setEnabled(false);
			lblRestockTimeUnit.setEnabled(false);
			break;
		}
		
		setRadioState();
	}
	
	private void setRadioState() {
		switch (lpInfo.getLimitPeriod()) {
		case LimitPrintInfo.PERIOD_DAY:
			radioUseDate.setEnabled(false);
			cmbRestockDate.setEnabled(false);
			lblRestockDateUnit.setEnabled(false);
			radioUseWeek.setEnabled(false);
			cmbRestockWeek.setEnabled(false);
			break;
		case LimitPrintInfo.PERIOD_WEEK:
			radioUseDate.setEnabled(false);
			radioUseWeek.setEnabled(true);
			cmbRestockDate.setEnabled(false);
			lblRestockDateUnit.setEnabled(false);
			cmbRestockWeek.setEnabled(true);
			break;
		case LimitPrintInfo.PERIOD_MONTH:
			radioUseDate.setEnabled(true);
			radioUseWeek.setEnabled(true);
			if (radioUseDate.isSelected()) {
				cmbRestockDate.setEnabled(true);
				lblRestockDateUnit.setEnabled(true);
				cmbRestockWeek.setEnabled(false);
			} else {
				cmbRestockDate.setEnabled(false);
				lblRestockDateUnit.setEnabled(false);
				cmbRestockWeek.setEnabled(true);
			}
			break;
		default:
			radioUseDate.setEnabled(false);
			cmbRestockDate.setEnabled(false);
			lblRestockDateUnit.setEnabled(false);
			radioUseWeek.setEnabled(false);
			cmbRestockWeek.setEnabled(false);
			break;
		}
	}
	
	protected boolean checkValues() {
		return true;
	}

	public JButton[] getButtons() {
		if (clientKind == PreferenceInfo.CLIENT_MAC) {
			return new JButton[] {
					new JButton(Resource.getString(Resource.LIMITPRINTINFO_CANCEL)),
					new JButton(Resource.getString(Resource.LIMITPRINTINFO_OK))
			};
		} else {
			return new JButton[] {
					new JButton(Resource.getString(Resource.LIMITPRINTINFO_OK)),
					new JButton(Resource.getString(Resource.LIMITPRINTINFO_CANCEL))
			};
		}
	}

	protected void setValuesFromComponent() {
		lpInfo.setRestockTime(cmbRestockTime.getSelectedIndex());
		if (radioUseWeek.isSelected()) {
			lpInfo.setRestockWeek(cmbRestockWeek.getSelectedIndex());
			lpInfo.setRestockDate(LimitPrintInfo.USE_RESTOCK_WEEK);
		} else {
			lpInfo.setRestockDate(cmbRestockDate.getSelectedIndex() + 1);
			lpInfo.setRestockWeek(0);
		}
	}

	protected void setValuesToComponent() {
		cmbRestockTime.setSelectedIndex(lpInfo.getRestockTime());
		if (lpInfo.getRestockDate() == LimitPrintInfo.USE_RESTOCK_WEEK) {
			radioUseWeek.setSelected(true);
			cmbRestockWeek.setSelectedIndex(lpInfo.getRestockWeek());
			cmbRestockDate.setSelectedIndex(0);
		} else {
			radioUseDate.setSelected(true);
			cmbRestockDate.setSelectedIndex(lpInfo.getRestockDate() - 1);
			cmbRestockWeek.setSelectedIndex(0);
		}
		
		setItemState();
	}

	public void actionPerformed(ActionEvent ae) {
		Object	obj = ae.getSource();
		
		if (obj == radioUseDate) {
			setItemState();
		} else if (obj == radioUseWeek) {
			setItemState();
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -