gui視覺化開發
阿新 • • 發佈:2018-11-03
package com.wzq.gui; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class MyFrame extends JFrame { private static final long serialVersionUID = 1L; static String path = null; static File file = null; public static void main(final String[] args) { // 畫出視窗 final JFrame frame = new MyFrame(); frame.setLayout(null); frame.setTitle("myFrame"); frame.setSize(400, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 新增按鈕 final JButton btn1 = new JButton("瀏覽"); final JButton btn2 = new JButton("解析"); btn1.setBounds(80, 70, 60, 25); btn2.setBounds(240, 70, 60, 25); btn1.setVisible(true); btn2.setVisible(true); frame.add(btn1); frame.add(btn2); // 設定字型 final Font font = new Font("宋體", Font.BOLD, 11); btn1.setFont(font); btn2.setFont(font); // 新增顯示框 final JLabel label = new JLabel("路徑:"); label.setBounds(60, 20, 50, 25); label.setVisible(true); label.setFont(font); label.setText("碼流檔案"); label.setToolTipText("124"); frame.add(label); // 新增文字框 final JTextField textField = new JTextField(); textField.setBounds(120, 20, 190, 22); textField.setVisible(true); frame.add(textField); frame.setVisible(true); // 為按鈕新增事件 btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); final int returnVal = chooser.showOpenDialog(btn1); if (returnVal == JFileChooser.APPROVE_OPTION) { file = chooser.getSelectedFile(); path = file.getAbsolutePath(); textField.setText(path); } } }); btn2.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final MyFrame myFrame = new MyFrame(); try { FileInputStream inputStream = new FileInputStream(file); byte[] bytes = new byte[(int)file.length()]; inputStream.read(bytes); myFrame.addInfo(new String(bytes)); } catch (Exception e1) { e1.printStackTrace(); } } }); // 為文字框新增事件 textField.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { if (new File(textField.getText()).isDirectory()) { path = textField.getText(); } else { final MyFrame myFrame = new MyFrame(); myFrame.addInfo("路徑名錯誤"); } } }); } public void addInfo(final String string) { final JFrame f = new JFrame("提示"); f.setLayout(null); f.setBounds(40, 40, 300, 100); f.setVisible(true); final JLabel label = new JLabel(string); label.setBounds(30, 20, 250, 20); final Font f1 = new Font("宋體", Font.BOLD, 12); label.setFont(f1); f.add(label); } }