Java框架和按钮的操作



我是Java新手,我想在一个大系统中创建第一步。我试图使用Eclipse WindowsBuilder来完成这项任务,但我得到了很多我不理解的代码,而且,我不知道如何继续。。。

我想做的很简单。当我运行我的程序时,我想要一个小窗口(框架?),它旁边有一个标签"用户名"和一个文本字段,下面我想要另一个标签"密码",它旁边还有一个密码字段。在它下面,我需要一个按钮"提交",当按下时,它会关闭这个窗口/框架,并打开一个更大的新窗口/框架。我会在其中放置各种东西。这是我的代码,它创建了第一个窗口,当我按下按钮时,我不知道如何让它做我想做的事情。此外,我不确定如何在没有主方法的情况下为新框架创建一个新类,它能工作吗?

感谢您提供的任何帮助和指导(如果有更好的方法或在没有windowsbuilder的情况下编写它,我愿意)。

package HR;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import javax.swing.JLabel;
import javax.swing.JFormattedTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class SignIn extends JFrame {
private JPanel contentPane;
private JPasswordField passwordField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SignIn frame = new SignIn();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public SignIn() {
setTitle("SYSTEM");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 308, 179);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new FormLayout(new ColumnSpec[] {
FormFactory.RELATED_GAP_COLSPEC,
FormFactory.DEFAULT_COLSPEC,
FormFactory.RELATED_GAP_COLSPEC,
FormFactory.DEFAULT_COLSPEC,
FormFactory.RELATED_GAP_COLSPEC,
FormFactory.DEFAULT_COLSPEC,
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),},
new RowSpec[] {
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,}));
JLabel lblNewLabel = new JLabel("User Name");
contentPane.add(lblNewLabel, "4, 4, right, default");
final JFormattedTextField username = new JFormattedTextField();
contentPane.add(username, "6, 4, 3, 1, fill, default");
JLabel lblNewLabel_1 = new JLabel("Password");
contentPane.add(lblNewLabel_1, "4, 6, right, default");
passwordField = new JPasswordField();
contentPane.add(passwordField, "6, 6, 3, 1, fill, default");
JButton btnSignIn = new JButton("Sign In");
btnSignIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) 
{
username.setText("Me");
}
});
contentPane.add(btnSignIn, "6, 8");
}
}

创建新窗口的正确位置在这里

public void actionPerformed(ActionEvent arg0) 
{
}

你可以这样做

public void actionPerformed(ActionEvent arg0) 
{
dispose();                //close old frame
JFrame f = new JFrame("test");    //creat new frame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
f.add(new JPanel());      //add new panel
f.setVisible(true);       //make it visible
f.setSize(768,1024);      //set the size
}

您只需要用您的类扩展JPanel替换新的JPanel()。你是对的,你的类中不需要主方法。所有事件都将由按钮等上的监听器触发。

public void actionPerformed(ActionEvent arg0) 
{
dispose();              
JFrame newFrame = new JFrame("newJFrame");    
newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
newFrame.add(new JPanel());     
newFrame.setSize(200,200);     //set this to any size you wish             
newFrame.setVisible(true);             
}

只需将新的JPanel替换为扩展JPanel的类,按钮上的监听器就会处理好。祝你一切顺利!

相关内容

  • 没有找到相关文章

最新更新