一不小心弄出了个很丑很丑的聊天界面。权当练习了。基本上只能输入输出了。因为输出窗口
也是用JLabelArea弄的,所以是可以删除的。(你见过这样的聊天工具?)
因为不知道像素具体是多高,所以画不了分隔线(区分输出与输出窗口)。而且把输入文本框和标签,
或者输入文本框和按钮,或者输出文本框和标签弄在同一个面板上的话。同个面板上的组件总是会相互
影响,改变长度。所以索性把输入窗口单独弄在一个面板上。
【BorderLayout布局只能是把组件放在东西南北中五个区域,一个区域放一个组件,
所以才要弄个面板来放多一点组件】
1 package demo; 2 3 import javax.swing.*; 4 import java.awt.*; 5 import java.awt.event.*; 6 import java.util.*; 7 8 public class Test implements ActionListener { 9 JTextArea inputText, outputText; 10 public static void main(String[] args) { 11 new Test(); 12 } 13 Test() { 14 JFrame frame = new JFrame(); 15 inputText = new JTextArea(10, 20); 16 outputText = new JTextArea(10, 20); 17 18 JButton button = new JButton("提交"); 19 button.addActionListener(this); 20 21 JPanel panel = new JPanel(); 22 panel.add(inputText); 23 panel.setBackground(Color.lightGray); 24 25 frame.getContentPane().add(BorderLayout.NORTH, outputText); 26 frame.getContentPane().add(BorderLayout.CENTER, panel); 27 frame.getContentPane().add(BorderLayout.SOUTH, button); 28 29 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 30 frame.setSize(400, 400); 31 frame.setVisible(true); 32 } 33 public void actionPerformed(ActionEvent event) { 34 Date time = new Date(); 35 String t = String.format("2017/%tB/%<td %<tr", time); 36 if (inputText.getText().length() != 0) { 37 outputText.append("游离之子 " + t + "\n" + inputText.getText() + "\n"); 38 } 39 inputText.setText(""); 40 } 41 42 }
原文:http://www.cnblogs.com/Ruby517/p/6358478.html