有点乱,有时间再整理
- import java.util.*;
- import java.io.*;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class TestLayout {
- public static void main(String[] args) {
- MyFrame mf = new MyFrame();
- }
- }
- class MyFrame extends JFrame implements ActionListener {
- public MyFrame() {
- super();
- this.setTitle("TestMyFrame");
- this.setSize(800, 600);
- this.centerOnScreen();
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- Container p = getContentPane();
- p.setLayout(new BorderLayout());
- JMenuBar jmb = new JMenuBar();
- JMenu[] jm = new JMenu[3];
- JMenuItem[][] jmi = { {new JMenuItem("打开"),new JMenuItem("保存")},
- {new JMenuItem("选择")},
- {new JMenuItem("新窗口")}
- };
- String[] mName = {"文件", "颜色", "窗口"};
- for(int i=0; i<jm.length; i++) {
- jm[i] = new JMenu(mName[i]);
- for(int j=0; j<jmi[i].length; j++) {
- jmi[i][j].addActionListener(this);
- jm[i].add(jmi[i][j]);
- }
- jmb.add(jm[i]);
- }
- this.setJMenuBar(jmb);
- setVisible(true);
- }
- public void actionPerformed(ActionEvent e) {
- if(e.getActionCommand()=="打开") {
- JFileChooser chooseFile = new JFileChooser();
- int returnVal = chooseFile.showOpenDialog(null);
- if(returnVal == chooseFile.APPROVE_OPTION) {
- File f = chooseFile.getSelectedFile();
- JOptionPane.showConfirmDialog(this, "你选择的文件名是:"+chooseFile.getName(f),
- "确认",JOptionPane.ERROR_MESSAGE);
- }
- } else if(e.getActionCommand()=="保存") { //也可以用getsource()方法获得那个变量
- JFileChooser chooseFile = new JFileChooser();
- int returnVal = chooseFile.showSaveDialog(null);
- if(returnVal == chooseFile.APPROVE_OPTION) {
- File f = chooseFile.getSelectedFile();
- JOptionPane.showConfirmDialog(this,chooseFile.getName(f));
- }
- } else if(e.getActionCommand()=="选择") {
- Color tmpColor = JColorChooser.showDialog(this, "调色板", Color.red);
- } else if(e.getActionCommand()=="新窗口") {
- MySmallFrame msf = new MySmallFrame("Just for fun !");
- } else {
- }
- }
- public void centerOnScreen() {
- Dimension displaySize = getToolkit().getScreenSize();
- Dimension winSize = getSize();
- int x = (displaySize.width - winSize.width) / 2;
- int y = (displaySize.height - winSize.height) / 2;
- if(x < 0) {
- x = 0;
- }
- if(y < 0) {
- y = 0;
- }
- setLocation(x, y);
- }
- }
- class MyFlowLayout extends FlowLayout {
- }
- class MyGridLayout extends GridLayout {
- }
- class MyBorderLayout extends BorderLayout {
- }
- class MySmallFrame extends JFrame implements ActionListener {
- Container p;
- JPanel viewPane1,viewPane2,viewPane3;
- JTextField textIn;
- JButton btnExpert;
- JTextArea textOut;
- public MySmallFrame(String s) {
- super();
- p = getContentPane();
- viewPane1 = new JPanel(); //视图一
- p.add(viewPane1, BorderLayout.NORTH); //把视图一添加到北边
- //viewPane1.setLayout();
- viewPane1.setBackground(Color.green); //设置视图一的背景色
- viewPane2 = new JPanel();
- p.add(viewPane2, BorderLayout.CENTER); //把视图二添加到面板中间
- viewPane3 = new JPanel();
- viewPane3.setLayout(null);
- JLabel labeTips = new JLabel();
- labeTips.setBounds(45,20,200,21);
- labeTips.setText("请在下框中输入土壤湿度:");
- labeTips.setForeground(new Color(0, 0, 255));
- textIn = new JTextField();
- textIn.addActionListener(this);
- textIn.setBounds(60,46,120,21);
- textIn.setBackground(new Color(216, 191, 216));
- viewPane3.add(labeTips);
- viewPane3.add(textIn);
- JLabel labeImag = new JLabel();
- labeImag.setBounds(15, -15, 300, 400);
- labeImag.setIcon(new ImageIcon("20.jpg"));
- viewPane3.add(labeImag);
- btnExpert = new JButton();
- btnExpert.setText("咨询专家");
- btnExpert.setBackground(new Color(216, 191, 216));
- btnExpert.setForeground(new Color(255, 0, 0));
- btnExpert.setBounds(75, 300, 90,23);
- btnExpert.addActionListener(this);
- viewPane3.add(btnExpert);
- GridLayout gl = new GridLayout(0,2);
- viewPane2.setLayout(gl); //把面板二分成面板三和输出面板
- viewPane2.add(viewPane3);
- textOut = new JTextArea("专家的意见:/n ");
- textOut.setFont(new Font("", Font.BOLD, 18));
- textOut.setBackground(new Color(238, 130, 238));
- viewPane2.add(textOut);
- setTitle(s);
- setBounds(500,200,500,400);
- JLabel labe = new JLabel();
- labe.setBounds(20,20,200,500);
- labe.setForeground(Color.red);
- labe.setText("及时和适量的供水是保证苹果丰产、优质的重要措施。");
- labe.setFont(new Font("", Font.BOLD, 15));
- viewPane1.add(labe);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setVisible(true);
- }
- public void actionPerformed(ActionEvent e) {
- String s = textIn.getText();
- if(e.getSource()==btnExpert) {
- textOut.append(s);
- }
- }
- }