📄 dip.java
字号:
import java.awt.image.*;import javax.swing.*;import bmpinfo.Bmp_Information;import bmpload.BmpJLabel;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.filechooser.FileFilter;public class DIP extends JFrame { public DIP() { initComponents(); } private void initComponents() { jPanel1 = new JPanel(); bmplabel = new BmpJLabel(); property = new JTextArea(); jLabel2 = new JLabel(); file_field = new JTextField(); jButton1 = new JButton(); jMenuBar1 = new JMenuBar(); filemenu = new JMenu(); viewmenu = new JMenu("View"); editmenu=new JMenu("Edit"); helpmenu=new JMenu(); setTitle("Bmp_Inf"); setResizable(false); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { exitForm(evt); } }); jPanel1.setLayout(null); bmplabel.setBorder(new TitledBorder(null, "Preview", TitledBorder.DEFAULT_JUSTIFICATION,TitledBorder.DEFAULT_POSITION, new Font("Dialog", 0, 14), new Color(255, 51, 51))); jPanel1.add(bmplabel); bmplabel.setBounds(20, 10, 150, 220); property.setEditable(false); property.setBackground(new Color(235, 233, 237)); property.setForeground(new Color(51, 51, 255)); property.setBorder(new TitledBorder(null, "Porperty",TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", 0, 14), new Color(255, 51, 51))); jPanel1.add(property); property.setBounds(180, 10, 150, 220); jLabel2.setText("File: "); jPanel1.add(jLabel2); jLabel2.setBounds(10, 240, 36, 15); file_field.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { file_fieldActionPerformed(evt); } }); jPanel1.add(file_field); file_field.setBounds(50, 240, 250, 20); jButton1.setIcon(new ImageIcon("Open16.gif")); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jButton1ActionPerformed(evt); } }); jPanel1.add(jButton1); jButton1.setBounds(310, 240, 30, 20); getContentPane().add(jPanel1, BorderLayout.CENTER); filemenu.setText("File"); filemenu.setMnemonic('F'); jMenuBar1.add(filemenu); viewmenu.setMnemonic('V'); jMenuBar1.add(viewmenu); editmenu.setMnemonic('E'); jMenuBar1.add(editmenu); helpmenu.setText("Help"); helpmenu.setMnemonic('H'); jMenuBar1.add(helpmenu); setJMenuBar(jMenuBar1); //File菜单 filemenu.add(new AbstractAction("Open...") { public void actionPerformed(ActionEvent evt) { try{ JFileChooser fch=new JFileChooser(); FileFilter filter=new Filter("BMP位图",".bmp"); fch.addChoosableFileFilter(filter); fch.setDialogTitle("File Open"); fch.setFileSelectionMode(JFileChooser.FILES_ONLY); int status=fch.showOpenDialog(DIP.this); if(status==JFileChooser.APPROVE_OPTION){ File selectfile=fch.getSelectedFile(); fileName = selectfile.getPath(); file_field.setText(fileName); bmplabel.loadBmp(selectfile); }else{ fileName=""; } }catch(Exception e){System.out.println(e);} repaint(); if(fileName!=""){ Bmp_Information pro=new Bmp_Information(fileName); property.setText(""); property.append(pro.getType());property.append("\n"); property.append(pro.getTotalsize());property.append("\n"); property.append(pro.getOffbits());property.append("\n"); property.append(pro.getInfsize());property.append("\n"); property.append(pro.getWidth());property.append("\n"); property.append(pro.getLength());property.append("\n"); property.append(pro.getBitcounts());property.append("\n"); property.append(pro.getDatasize());property.append("\n"); }else{ property.setText(""); } } }); filemenu.add(new AbstractAction("Save...") { public void actionPerformed(ActionEvent evt) { JFileChooser fch=new JFileChooser("."); fch.setDialogTitle("Save"); FileFilter filter=new Filter("BMP位图",".bmp"); fch.addChoosableFileFilter(filter); int status=fch.showSaveDialog(DIP.this); if(status==JFileChooser.APPROVE_OPTION) { File file=fch.getSelectedFile(); if(!file.exists()){ File source=bmplabel.getFileName(); BufferedInputStream bfs=null; BufferedOutputStream bos=null; int size=(int)source.length(); byte[] date=new byte[size]; try{ bfs=new BufferedInputStream(new FileInputStream(source)); int datasize=bfs.read(date,0,size); bos=new BufferedOutputStream(new FileOutputStream(file.getAbsolutePath()+".bmp")); bos.write(date,0,size); }catch(Exception e){ System.out.println(e); }finally{ try{ bfs.close(); bos.close(); }catch(IOException e){} } } } } }); filemenu.addSeparator(); filemenu.add(new AbstractAction("Exit") { public void actionPerformed(ActionEvent evt) { System.exit(0); } }); //View菜单 viewmenu.add(new AbstractAction("Histogram..."){ public void actionPerformed(ActionEvent evt){ hisgram zft=new hisgram(DIP.this, true,(bmplabel.getFileName().toString())); zft.show(); } }); //Edit菜单 editmenu.add(new AbstractAction("Equilize"){ public void actionPerformed(ActionEvent evt){ Equilize eq=new Equilize(fileName); eq.equipoise(); bmplabel.loadBmp(eq.tempfile); } }); //Help菜单 helpmenu.add(new AbstractAction("About..."){ public void actionPerformed(ActionEvent evt){ JOptionPane.showMessageDialog(DIP.this, "DIPv1.0","About", JOptionPane.INFORMATION_MESSAGE,new ImageIcon("icon.gif")); } }); Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-359)/2, (screenSize.height-325)/2, 359, 325); } private void file_fieldActionPerformed(ActionEvent evt) { } private void jButton1ActionPerformed(ActionEvent evt) { try{ JFileChooser fch=new JFileChooser("."); FileFilter filter=new Filter("BMP位图",".bmp"); fch.addChoosableFileFilter(filter); fch.setDialogTitle("File Open"); int status=fch.showOpenDialog(DIP.this); File selectfile=fch.getSelectedFile(); fileName = selectfile.toString(); file_field.setText(fileName); bmplabel.loadBmp(selectfile); }catch(Exception e){System.out.println(e);} repaint(); if(fileName!=""){ Bmp_Information pro=new Bmp_Information(fileName); property.setText(""); property.append(pro.getType());property.append("\n"); property.append(pro.getTotalsize());property.append("\n"); property.append(pro.getOffbits());property.append("\n"); property.append(pro.getInfsize());property.append("\n"); property.append(pro.getWidth());property.append("\n"); property.append(pro.getLength());property.append("\n"); property.append(pro.getBitcounts());property.append("\n"); property.append(pro.getDatasize());property.append("\n"); }else{ property.setText(""); } } private void exitForm(WindowEvent evt) { System.exit(0); } public static void main(String args[]) { new DIP().show(); } private JButton jButton1; private BmpJLabel bmplabel; private JLabel jLabel2; private JMenu filemenu; private JMenu viewmenu; private JMenu editmenu; private JMenu helpmenu; private JMenuBar jMenuBar1; private JPanel jPanel1; private JTextArea property; private JTextField file_field; private String fileName=null; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -