📄 polynomialtest.java
字号:
package me;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.LinkedList;
import java.util.ListIterator;
import javax.swing.*;
public class PolynomialTest extends JFrame{
Polynomial pa=new Polynomial();
Polynomial pb=new Polynomial();
JTextArea show=new JTextArea();
JTextField ceof;
JTextField expn;
boolean isAddPa=true;
boolean paFirst=true;
boolean pbFirst=true;
PolynomialTest(){
setSize(400,300);
JPanel buttonPanel=new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
JButton addPoly=new JButton("Add");
JButton subPoly=new JButton("Subtract");
JButton mulPoly=new JButton("Multiply");
JButton reset=new JButton("Reset");
buttonPanel.add(addPoly);
buttonPanel.add(subPoly);
buttonPanel.add(mulPoly);
buttonPanel.add(reset);
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
pa.getLinkList().clear();
pb.getLinkList().clear();
show.setText("");
}
});
addPoly.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Polynomial p1=pa.clone();
Polynomial p2=pb.clone();
if(p1!=null&&p2!=null){
p1.addPoly(p2);
show.append("\npa + pb = ");
showPolynomial(p1);
}
else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
}
});
subPoly.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Polynomial p1=pa.clone();
Polynomial p2=pb.clone();
if(p1!=null&&p2!=null){
p1.subtractPolyn(p2);
show.append("\npa - pb = ");
showPolynomial(p1);
}
else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
}
});
mulPoly.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Polynomial p1=pa.clone();
Polynomial p2=pb.clone();
if(p1!=null&&p2!=null){
p1.multiplyPolyn(p2);
show.append("\npa * pb = ");
showPolynomial(p1);
}
else JOptionPane.showMessageDialog(PolynomialTest.this,null,"error!",JOptionPane.ERROR_MESSAGE);
}
});
ceof=new JTextField(10);
expn=new JTextField(10);
JButton addTerm=new JButton("AddTerm");
JPanel addTermPanel=new JPanel();
addTermPanel.add(new JLabel("ceof"));
addTermPanel.add(ceof);
addTermPanel.add(new JLabel("expn"));
addTermPanel.add(expn);
addTermPanel.add(addTerm);
addTerm.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(ceof.getText().equals("")&&expn.getText().equals("")){
JOptionPane.showConfirmDialog(PolynomialTest.this,"please input ceof and expn");
return;
}
if(isAddPa){
if(pa.getLinkList().isEmpty())show.append("\npa= ");
Term t=new Term(Float.parseFloat(ceof.getText()),Integer.parseInt(expn.getText()));
pa.addTerm(t);
showTerm(t,paFirst);
if(paFirst==true)paFirst=false;
}
else{
if(pb.getLinkList().isEmpty())show.append("\npb= ");
Term t=new Term(Float.parseFloat(ceof.getText()),Integer.parseInt(expn.getText()));
pb.addTerm(t);
showTerm(t,pbFirst);
if(pbFirst==true)pbFirst=false;
}
ceof.setText("");
expn.setText("");
}
});
JMenuBar bar=new JMenuBar();
JMenu menu=new JMenu("Create");
JMenuItem cPa=new JMenuItem("Create pa");
JMenuItem cPb=new JMenuItem("Create pb");
cPa.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
isAddPa=true;
}
});
cPb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
isAddPa=false;
}
});
bar.add(menu);
menu.add(cPa);
menu.add(cPb);
setJMenuBar(bar);
add(buttonPanel,BorderLayout.SOUTH);
add(addTermPanel,BorderLayout.NORTH);
add(new JScrollPane(show),BorderLayout.CENTER);
}
private void showTerm(Term t,boolean first){
if(first){
show.append(t.getCoef()+"x"+t.getExpn());
}
else show.append(" + "+t.getCoef()+"x"+t.getExpn());
}
private void showPolynomial(Polynomial p){
LinkedList<Term> l=p.getLinkList();
ListIterator<Term> it=l.listIterator();
while(it.hasNext()){
Term t=it.next();
if(it.previousIndex()==0)show.append(""+t.getCoef()+"x"+t.getExpn()+" ");
else show.append("+ "+t.getCoef()+"x"+t.getExpn()+" ");
}
}
public static void main(String args[]){
PolynomialTest frame=new PolynomialTest();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -