📄 lnbcgdialog.java
字号:
package gui;
import trans.Peparoni;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class LnbcgDialog extends JDialog implements ActionListener, ChangeListener{
private JButton def,set,quit;
private JTextField status, text2, text3, text4;
private JCheckBox gmres;
public LnbcgDialog(JFrame parent)
{
super(parent, "求解参数", true);
Container contentPane = getContentPane();
JPanel top = new JPanel();
top.add((Component)new JLabel("状态 "));
status = new JTextField(20);
status.setEditable(false);
top.add((Component)status);
def = new JButton("缺省");
set = new JButton("设置");
quit = new JButton("退出");
def.addActionListener((ActionListener)this);
set.addActionListener((ActionListener)this);
quit.addActionListener((ActionListener)this);
top.add((Component)def);
top.add((Component)set);
top.add((Component)quit);
JPanel middle = new JPanel((LayoutManager)new GridLayout(4, 3));
middle.add((Component)new JLabel(" Itol "));
text2 = new JTextField((new Integer(Peparoni.itol)).toString(), 15);
middle.add((Component)text2);
middle.add((Component)new JLabel(" 缺省值: 1 "));
middle.add((Component)new JLabel(" 最大迭代次数 "));
text3 = new JTextField((new Integer(Peparoni.itmax)).toString(), 15);
middle.add((Component)text3);
middle.add((Component)new JLabel(" 缺省值: 100 "));
middle.add((Component)new JLabel(" 公差 "));
text4 = new JTextField((new Double(Peparoni.tol)).toString(), 15);
middle.add((Component)text4);
middle.add((Component)new JLabel(" 缺省值: 1e-15 "));
middle.add((Component)new JLabel(" Generalised Minimum Residual "));
gmres = new JCheckBox("true",Peparoni.gmres);
gmres.addChangeListener(this);
middle.add(gmres);
middle.add((Component)new JLabel(" 缺省值: true "));
contentPane.add((Component)top, BorderLayout.NORTH);
contentPane.add((Component)middle, BorderLayout.CENTER);
this.setSize(500,200);
show();
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
status.setText("");
Object source = arg0.getSource();
if (source == quit) dispose(); else if (source == def) def(); else if (source == set) set();
return;
}
public void stateChanged(ChangeEvent arg0) {
// TODO Auto-generated method stub
if(gmres.isSelected()) gmres.setText("true");
else gmres.setText("false");
}
private void set()
{
try{
Integer localItol = new Integer(text2.getText());
if (localItol.intValue() < 1 || localItol.intValue() > 4) {
status.setText("Itol数值请在1~4之间");
}
else
{
Peparoni.itol=localItol.intValue();
Peparoni.itmax=(new Integer(text3.getText())).intValue();
Peparoni.tol=(new Double(text4.getText())).doubleValue();
Peparoni.gmres=gmres.isSelected();
}
}catch(NumberFormatException e)
{
status.setText("非法输入");
}
status.setText("新的设置方案生效");
}
public void def()
{
text2.setText("1");
text3.setText("100");
text4.setText("1e-15");
gmres.setSelected(true);
status.setText("缺省设置方案");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -