我刚刚开始编程,我的老师给了我这个任务,使用分发的类文件创建图形显示,以及从该文件调用的方法列表。
我正在使用GUI,我希望有三个JTextFields
,您可以在其中输入一个数字来更改图表。我正在努力学习第一个文本字段,我称之为句号(它会改变图表上的句号)。我在代码(重要部分)中写了这样的代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Name extends Jpanel implements ActionListener
{
private SinCosGraph scg = new SinCosGraph //SinCosGraph is the name of the class file that im using.
//delclaring all the components, dont think it is neccecary to write them all(JButtons, JPanels etc.)
public Name()
{
setLayout(new BorderLayout());
add("Center", scg);
scg.setPeriod(45);
System.out.println("The period is = " + scg.getPeriod());
System.out.println("Intperiod is = " + scg.getPeriod());
initComponent();
}
public void initComponent()
{
e = new JPanel();
e.setLayout(new GridLayout(5,1, 40, 40));
p1 = new JPanel();
p1.setPreferredSize(new Dimension(200, 50));
p1.setBorder( BorderFactory.createTitledBorder("Period") );
period = new JTextField(5);
period.setText("" + scg.getPeriod());
int intperiod = Integer.praseInt(period.getText());
p1.add(period);
e.add(p1);
add("East",e);
.
.
.
.
public void actionPerformed(ActionEvent e)
{
//Redrawing the graph
if(e.getSource() == reDraw)
{
scg.setPeriod(intperiod);
repaint();
}
public static void main(String[]args)
{
JFrame jf = new JFrame("Name");
jf.setSize(1000, 700);
jf.setContentPane(new Name());
jf.setVisible(true);
}
}
这是重要的代码(跳过很多代码),这是在我运行程序时发生的:http://i.imgur.com/tC6ZY2C.png
它表示时间段是45,这是正确的,因为我将其设置为45.但textfield
显示360,这是默认数字。而int period的值为0!
我可以使用一些帮助我不知道出了什么问题。
答案 0 :(得分:1)
必须使用Integer类将字符串转换为整数。
你想要整数的地方:
Integer.parseInt(scg.getPeriod());
答案 1 :(得分:0)
尝试
System.out.println(Integer.parseInt(scg.getPeriod()));
答案 2 :(得分:0)
使用Integer包装类方法..
Integer.parseInt("your string");
Google“Wrapper class”及其有关投射数据的更多信息的方法