当前位置: 代码迷 >> J2SE >> Java Swing 一段简单代码求详解,多谢大神们
  详细解决方案

Java Swing 一段简单代码求详解,多谢大神们

热度:105   发布时间:2016-04-23 20:24:03.0
Java Swing 一段简单代码求详解,在线等,谢谢大神们
各位大神,麻烦详细下一下代码的意思,initCom 里面的详细解释,不明白都有了一个mainpanel,为什么还要定义panel,谢谢

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.micron.autoreport.service.UserService;

public class UserAdminPanel extends JFrame {

private static final long serialVersionUID = 2350562135525932666L;
private JPanel mainPanel;
private UserService userSerivce = new UserService();
private AbstractButton okButton;

public UserAdminPanel() {
setTitle("Metrics Report");
initCom();
setLayout(new BorderLayout());
add(mainPanel, BorderLayout.CENTER);
setSize(800, 600);
setVisible(true);

}

private void initCom() {
mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JLabel label = new JLabel("Metric Name:");
panel.add(label, BorderLayout.WEST);
final JTextField nameField = new JTextField(10);
panel.add(nameField, BorderLayout.CENTER);
mainPanel.add(panel, BorderLayout.NORTH);

// this.add(mainPanel); // add by myself

okButton = new JButton("Apply");
okButton.setLayout(new BorderLayout());
mainPanel.add(okButton, BorderLayout.WEST);

okButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
userSerivce.addUser(name);

};

});
}

public static void main(String[] args) {
UserAdminPanel panel = new UserAdminPanel();

}
}
------解决方案--------------------
mainPanel 是最大的那个panel,其他都是mainPanel里面的块
------解决方案--------------------
这个应该是为了让各个组件形成某种方式的排列
  相关解决方案