java 缺少标识符
这是我编的第一个JAVA程序,但是总是不对,请高手帮忙!目的是为了在Text2中输出其对应的数字的汉字表达,由于还有别的程序,因此前面的格式是这样的importjavax...
这是我编的第一个JAVA程序,但是总是不对,请高手帮忙!目的是为了在Text2中输出其对应的数字的汉字表达,由于还有别的程序,因此前面的格式是这样的
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//设置类MHomework
public class MHomework extends JFrame{
//设置多个全局变量
JTextField Text1=new JTextField(9);
JTextField Text2=new JTextField(22);
StringBuffer s=new StringBuffer(Text1.getText());
JFrame Frame=new JFrame("数字转换器");
JLabel lb1=new JLabel("输入数据");
JButton Button1=new JButton("汉字形式");
Button1.addActionListener(new ButtonListener());
//设置一个主方法
public static void main(String []args){
Frame.getContentPane().setLayout(new FlowLayout());
Frame.getContentPane().add(lb1);
Frame.getContentPane().add(Text1);
Frame.getContentPane().add(Button1);
Frame.getContentPane().add(Text2);
Frame.pack();
Frame.setVisible(true);
}
}
class ButtonListener implements ActionListener{
MHomework a=new MHomework();
public void actionPerformed(ActionEvent e)
{Text2.setText("汉字形式");}
} 展开
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//设置类MHomework
public class MHomework extends JFrame{
//设置多个全局变量
JTextField Text1=new JTextField(9);
JTextField Text2=new JTextField(22);
StringBuffer s=new StringBuffer(Text1.getText());
JFrame Frame=new JFrame("数字转换器");
JLabel lb1=new JLabel("输入数据");
JButton Button1=new JButton("汉字形式");
Button1.addActionListener(new ButtonListener());
//设置一个主方法
public static void main(String []args){
Frame.getContentPane().setLayout(new FlowLayout());
Frame.getContentPane().add(lb1);
Frame.getContentPane().add(Text1);
Frame.getContentPane().add(Button1);
Frame.getContentPane().add(Text2);
Frame.pack();
Frame.setVisible(true);
}
}
class ButtonListener implements ActionListener{
MHomework a=new MHomework();
public void actionPerformed(ActionEvent e)
{Text2.setText("汉字形式");}
} 展开
2个回答
展开全部
第一个Java程序就写这样的,真厉害啊!
其中有好几个错误,都是刚学Java时候最容易犯的,改正后也不仅仅是能跑,不是好的编程风格,好的设计和风格慢慢积累吧。 另外由于你的ButtonListener没写好,其实没有达到你所想的转换字符的目的,自己改吧。
1) 在静态方法里只能访问静态变量。对于面向对象的设计,这种使用静态变量的风格是不好的。(我的修改没有改变这种不好的过分依赖静态单例的设计)
2) 一个类(这里是ButtonListener)直接访问另一个类(MHomework)的成员,需要通过被访问类指引,不能直接访问。如果访问类逻辑上有局部性,也可以把它设置为被访问类的内部类。(后者是我改动所采用的方法)
3) 内部类被宿主类静态成员访问,那么内部类也需要是静态的。
对以上三个改动多问个为什么都是很好的学习过程,慢慢积累吧。
====== 改动后的代码 =====
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//设置类MHomework
public class MHomework extends JFrame {
// 设置多个全局变量
static JTextField Text1 = new JTextField(9);
static JTextField Text2 = new JTextField(22);
StringBuffer s = new StringBuffer(Text1.getText());
static JFrame Frame = new JFrame("数字转换器");
static JLabel lb1 = new JLabel("输入数据");
static JButton Button1 = new JButton("汉字形式");
// 设置一个主方法
public static void main(String[] args) {
Button1.addActionListener(new ButtonListener());
Frame.getContentPane().setLayout(new FlowLayout());
Frame.getContentPane().add(lb1);
Frame.getContentPane().add(Text1);
Frame.getContentPane().add(Button1);
Frame.getContentPane().add(Text2);
Frame.pack();
Frame.setVisible(true);
}
static class ButtonListener implements ActionListener {
MHomework a = new MHomework();
public void actionPerformed(ActionEvent e) {
Text2.setText("汉字形式");
}
}
}
其中有好几个错误,都是刚学Java时候最容易犯的,改正后也不仅仅是能跑,不是好的编程风格,好的设计和风格慢慢积累吧。 另外由于你的ButtonListener没写好,其实没有达到你所想的转换字符的目的,自己改吧。
1) 在静态方法里只能访问静态变量。对于面向对象的设计,这种使用静态变量的风格是不好的。(我的修改没有改变这种不好的过分依赖静态单例的设计)
2) 一个类(这里是ButtonListener)直接访问另一个类(MHomework)的成员,需要通过被访问类指引,不能直接访问。如果访问类逻辑上有局部性,也可以把它设置为被访问类的内部类。(后者是我改动所采用的方法)
3) 内部类被宿主类静态成员访问,那么内部类也需要是静态的。
对以上三个改动多问个为什么都是很好的学习过程,慢慢积累吧。
====== 改动后的代码 =====
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//设置类MHomework
public class MHomework extends JFrame {
// 设置多个全局变量
static JTextField Text1 = new JTextField(9);
static JTextField Text2 = new JTextField(22);
StringBuffer s = new StringBuffer(Text1.getText());
static JFrame Frame = new JFrame("数字转换器");
static JLabel lb1 = new JLabel("输入数据");
static JButton Button1 = new JButton("汉字形式");
// 设置一个主方法
public static void main(String[] args) {
Button1.addActionListener(new ButtonListener());
Frame.getContentPane().setLayout(new FlowLayout());
Frame.getContentPane().add(lb1);
Frame.getContentPane().add(Text1);
Frame.getContentPane().add(Button1);
Frame.getContentPane().add(Text2);
Frame.pack();
Frame.setVisible(true);
}
static class ButtonListener implements ActionListener {
MHomework a = new MHomework();
public void actionPerformed(ActionEvent e) {
Text2.setText("汉字形式");
}
}
}
展开全部
你错误的原因在于 在静态的方法MAIN中调用了非静态的成员就是
JTextField Text1=new JTextField(9);
JTextField Text2=new JTextField(22);
StringBuffer s=new StringBuffer(Text1.getText());
JFrame Frame=new JFrame("数字转换器");
JLabel lb1=new JLabel("输入数据");
JButton Button1=new JButton("汉字形式");
Button1.addActionListener(new ButtonListener());
这个部分
楼上的程序改的太完美了
JTextField Text1=new JTextField(9);
JTextField Text2=new JTextField(22);
StringBuffer s=new StringBuffer(Text1.getText());
JFrame Frame=new JFrame("数字转换器");
JLabel lb1=new JLabel("输入数据");
JButton Button1=new JButton("汉字形式");
Button1.addActionListener(new ButtonListener());
这个部分
楼上的程序改的太完美了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询