小知识点:
1.返回参数类型设置为组件
2.多层结构分解,功能利用组件实现
3.结构分为显示层-JScrollPane,操作层-JTextArea,控制层-JButton
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Ftest extends JFrame {
private JPanel jp1 = null;
private JPanel jpct = null;
private JScrollPane js =null;
private JTextArea jt1 =null;
private JTextArea jt2 =null;
private JButton jb1 =null;
private JTextArea getJt1() { //显示文本区域
if (jt1 == null) {
jt1 = new JTextArea("",15,23);
}
return jt1;
}
private JTextArea getJt2() { //发送文本区域
if (jt2 == null) {
jt2 = new JTextArea("",2,23);
}
return jt2;
}
private JButton getJb1() { //发送按钮
if(jb1 == null) {
jb1 = new JButton("发送");
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
jt1.append(jt2.getText());
jt1.append("\n");
jt2.setText("");
}
});
}
return jb1;
}
private JScrollPane getJs() { //显示滚动文本区域
if(js == null) {
js = new JScrollPane();
js.setViewportView(getJt1());
}
return js;
}
private JPanel getJp1() {
if(jp1 == null) {
jp1 = new JPanel();
jp1.setLayout(new FlowLayout());
jp1.add(getJs());
jp1.add(getJt2());
jp1.add(getJb1());
}
return jp1;
}
public Ftest() {
super();
initialize();
}
private void initialize() {
this.setSize(300, 430);
this.setContentPane(getJp1());
this.setTitle("JFrame");
this.setVisible(true);
}
public static void main(String[] args) {
new Ftest();
}
}