Java 简单程序遇到了问题

初学Swing遇到了麻烦。我想设计一个程序,输入你的名字就打出“你好+名字”,否则就打出“你还没告诉我你的名字。”,但是现在一直是“你好”,怎么办?

这是我的代码:
package MySwing;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Myswing {
JTextArea text;
String str;

public static void main(String[] args) {
Myswing gui=new Myswing();
gui.go();
}
public void go() {
JFrame frame=new JFrame("zzsy");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(800, 300);

JPanel panel=new JPanel();
JButton button1=new JButton("确定");
JButton button2=new JButton("退出");

JLabel label=new JLabel("输入你的名字:");
label.setFont(new Font("宋体",Font.BOLD,16));//设置字体

JTextField field=new JTextField(30);
field.setText("");
str=field.getText();

text=new JTextArea();
text.setLineWrap(true);
JScrollPane scroll=new JScrollPane(text);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

button1.addActionListener(new b1());

panel.setLayout(null);
button1.setBounds(50, 300, 100, 50);
button2.setBounds(200, 300, 100, 50);
label.setBounds(0, 0, 200, 40);
field.setBounds(150, 0, 100, 40);
text.setBounds(40,50,300,200);

panel.add(button1);
panel.add(button2);
panel.add(label);
panel.add(field);
panel.add(text);
panel.add(scroll);

frame.add(panel);
frame.setSize(400, 400);
frame.setVisible(true);
}
class b1 implements ActionListener{
public void actionPerformed(ActionEvent e1) {
if(str=="")
text.append("你还没告诉我你的名字。\n");
else
text.append("你好"+str+"! \n");
}
}
}

你的str在输入信息之前就已经却定了,也就是你输入的信息没有传入str,,需要在调用点击事件时获取,,str = field.getText();

 import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Myswing {
    JTextArea text;
    String str;

    public static void main(String[] args) {
        Myswing gui = new Myswing();
        gui.go();
    }

    public void go() {
        JFrame frame = new JFrame("zzsy");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocation(800, 300);
        JPanel panel = new JPanel();
        JButton button1 = new JButton("确定");
        JButton button2 = new JButton("退出");
        JLabel label = new JLabel("输入你的名字:");
        label.setFont(new Font("宋体", Font.BOLD, 16));//设置字体
        JTextField field = new JTextField(30);
        field.setText("");
        str = field.getText();
        text = new JTextArea();
        text.setLineWrap(true);
        JScrollPane scroll = new JScrollPane(text);
        scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        button1.addActionListener(new b1(field));
        panel.setLayout(null);
        button1.setBounds(50, 300, 100, 50);
        button2.setBounds(200, 300, 100, 50);
        label.setBounds(0, 0, 200, 40);
        field.setBounds(150, 0, 100, 40);
        text.setBounds(40, 50, 300, 200);
        panel.add(button1);
        panel.add(button2);
        panel.add(label);
        panel.add(field);
        panel.add(text);
        panel.add(scroll);
        frame.add(panel);
        frame.setSize(400, 400);
        frame.setVisible(true);
    }

    class b1 implements ActionListener {
        private JTextField field;
        public b1(JTextField field){
            this.field = field;
        }
        public void actionPerformed(ActionEvent e1) {
            str = field.getText();
            if (str == "")
                text.append("你还没告诉我你的名字。\n");
            else
                text.append("你好" + str + "! \n");
        }
    }
}

我已经按照你的需求修改好了,,你试试,,有问题还可以追问。

最后有个建议,java SWing算是比较冷门的东西,目前java比较火的两个方向,,web和android,,
swing不行了,安卓也不如以前了,,
建议学习web方向,swing用的真心不多(有的用只是很少)

这说明你的str并不等于"" 其实你真正需要的条件是 if("".equals(str) || str == null)

我不会这个,但我试了一下你的代码,然后用上面的兄台的修改方法试了一下,发现问题
你的if判断比的是字符串,不知道实际接收的是什么,但你在界面输入的信息应该始终都是空值,因为我用楼上兄台的方法equals比对地址总是显示没告诉名字
你朝着这个思路找一下,看看你在可视页面输入的名字接收到了么?
回头发一份改好的我玩玩,而且退出不好使要改哦

  JTextField field;//成员变量   
  str = field.getText();
        if (str == null || str.trim().equals(""))
            text.append("你还没告诉我你的名字。\n");
        else
            text.append("你好" + str + "! \n");

//--------------------------------------------------------------------