首页 / JAVA / Java Stack进入GUI
Java Stack进入GUI
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java Stack进入GUI,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4001字,纯文字阅读大概需要6分钟。
内容图文
![Java Stack进入GUI](/upload/InfoBanner/zyjiaocheng/784/16378a82831d4aedb88f64a2b57354e4.jpg)
现在我正在学习我的编程文凭,我们有一个设定任务,即计算总计,平均值,计数器,输入的最大值和最小值,撤消按钮和清除按钮.我已经完成了所有工作,包括撤销按钮,但我的讲师通过在撤消方法中添加堆栈功能来设置额外的信用机会.我已经研究了如何推送对象,但我不确定如何弹出对象并将请求的对象添加到我的GUI中.我知道这不是完全必要的,但我想在余生中这样做,所以我真的很努力.如果有人能够帮助我,我的源文件在下面.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class DataPanel extends JPanel {
ArrayList<Data> dataStore = new ArrayList<Data>();
Stack dataStack = new Stack();
private double _number, _oldNumber;
private double _total, _oldTotal;
private int _count, _oldCount;
private double _average, _oldAverage;
private double _min, _oldMin;
private double _max, _oldMax;
private JTextField _inField = new JTextField();
private JTextField _totalField = new JTextField();
private JTextField _averageField = new JTextField();
private JTextField _minField = new JTextField();
private JTextField _maxField = new JTextField();
private JTextField _countField = new JTextField();
public DataPanel() {
setLayout(new GridLayout(6, 2, 1, 1));
add(new JLabel("Number"));
add(_inField);
_inField.addActionListener(new InFieldListener());
add(new JLabel("Total"));
add(_totalField);
_totalField.setEditable(false);
add(new JLabel("Count"));
add(_countField);
_countField.setEditable(false);
add(new JLabel("Average"));
add(_averageField);
_averageField.setEditable(false);
add(new JLabel("Maximum"));
add(_maxField);
_maxField.setEditable(false);
add(new JLabel("Minimum"));
add(_minField);
_minField.setEditable(false);
}
public void clear() {
_total = 0;
_count = 0;
_average = 0;
_max = 0;
_min = 0;
_inField.setText("");
_totalField.setText("");
_countField.setText("");
_averageField.setText("");
_maxField.setText("");
_minField.setText("");
}
public void undo() {
/*_number = _oldNumber;
_total = _oldTotal;
_count = _oldCount;
_average = _oldAverage;
_max = _oldMax;
_min = _oldMin;
_inField.setText(String.valueOf(_number));
_totalField.setText(String.valueOf(_total));
_countField.setText(String.valueOf(_count));
_averageField.setText(String.valueOf(_average));
_maxField.setText(String.valueOf(_max));
_minField.setText(String.valueOf(_min));*/
/*int size = dataStore.size();
dataStore.remove(size-1);*/
}
private class Data {
private Data(double _number, double _total, int _count, double _average, double _max, double _min) {
_number = _number;
_total = _total;
_count = _count;
_average = _average;
_max = _max;
_min = _min;
}
}
private class InFieldListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(_inField.getText().equals("exit")) {
System.exit(0);
}
try {
_number = Double.parseDouble(_inField.getText());
_inField.setText("");
/*_oldNumber = _number;
_oldTotal = _total;
_oldAverage = _average;
_oldCount = _count;
_oldMax = _max;
_oldMin = _min;*/
_count++;
if(_count == 1) {
_min = _number;
_max = _number;
} else if(_number >= _max) {
_max = _number;
} else if(_number <= _min) {
_min = _number;
}
_total += _number;
_average = _total/_count;
_totalField.setText(String.valueOf(_total));
_countField.setText(String.valueOf(_count));
_averageField.setText(String.valueOf(_average));
_maxField.setText(String.valueOf(_max));
_minField.setText(String.valueOf(_min));
//dataStore.add(new Data(_number, _total, _count, _average, _max, _min));
dataStack.add(new Data(_number, _total, _count, _average, _max, _min));
} catch(NumberFormatException nfe) {
System.out.println("There was a problem: " + nfe);
_inField.setText("");
}
}
}
}
/ * * /包围的所有语法都是原始的撤消方法.
解决方法:
你的代码:
dataStack.add(new Data(_number, _total, _count, _average, _max, _min));
应该是push()而不是add().
然后在undo()中,您可以调用dataStack.pop()并将从此返回的对象转换为Data. (替代方案:使用泛型)
然后你取出每个Data的成员来恢复实例变量_number等等.
编辑:>我怎么扫描出来?
对于每次单击撤消按钮,您只需要恢复(= pop())一个数据对象.然后,您可以询问它的变量,并使用这些变量恢复DataPanel的变量.例:
Data d = (Data)dataStack.pop();
_number = d._number;
...
内容总结
以上是互联网集市为您收集整理的Java Stack进入GUI全部内容,希望文章能够帮你解决Java Stack进入GUI所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。