首先请看我的源代码:
package bookmanagersystem;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class UserLogin {
JFrame ul;
JButton button1,button2;
private void setupComponent(){
ul.setSize(320,240);
ul.setLocation(300,200);
ul.setResizable(false);
ul.setVisible(true);
JPanel con=new JPanel();
con.setLayout(new GridLayout(4,1));
//定义中间容器
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
JPanel panel0=new JPanel();
FlowLayout flow=new FlowLayout();
flow.setAlignment(FlowLayout.CENTER);
flow.setHgap(30);
panel1.setLayout(flow);
panel2.setLayout(flow);
panel3.setLayout(flow);
con.add(panel0);
con.add(panel1);
con.add(panel2);
con.add(panel3);
//定义控件
JLabel label1=new JLabel( "用户名: ");
JTextField text1=new JTextField( " ",15);
panel1.add(label1);
panel1.add(text1);
JLabel label2=new JLabel( "密 码: ");
JTextField text2=new JTextField( " ",15);
text2.setEditable(true);
panel2.add(label2);
panel2.add(text2);
JButton button1=new JButton( "确 定 ");
JButton button2=new JButton( "取 消 ");
panel3.add(button1);
panel3.add(button2);
}
}
public class Run {
public static void main(String[] args) {
// TODO 自动生成方法存根
new UserLogin();
}
}
我用的是eclipse_3.1.2
电脑警告说:从不以本地方式使用类型UserLogin中的方法setupComponent(),咋回事?我该怎么办?还请高人支招……
------解决方案--------------------
你定义了这个方法并没有调用。而且你的这个方法完全可以写成构造函数。
还有你用了JPanel和其他一些组件根本没有添加到JFrame上。对于swing包里的组件添加要用getContentPane();
我大概改了一下
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class UserLogin {
JFrame ul;
JButton button1,button2;
UserLogin(){
ul=new JFrame();
JPanel con=new JPanel();
Container c=ul.getContentPane();
con.setLayout(new GridLayout(4,1));
//定义中间容器
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
JPanel panel0=new JPanel();
FlowLayout flow=new FlowLayout();
flow.setAlignment(FlowLayout.CENTER);
flow.setHgap(30);
panel1.setLayout(flow);
panel2.setLayout(flow);
panel3.setLayout(flow);
con.add(panel0);
con.add(panel1);
con.add(panel2);
con.add(panel3);
//定义控件
JLabel label1=new JLabel( "用户名: ");
JTextField text1=new JTextField( " ",15);
panel1.add(label1);
panel1.add(text1);
JLabel label2=new JLabel( "密 码: ");
JTextField text2=new JTextField( " ",15);