⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memorydialog.java

📁 JBother是纯Java开发的Jabber(即时消息开源软件)客户端。支持群组聊天
💻 JAVA
字号:
package com.valhalla.gui;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class MemoryDialog extends JDialog{    GridBagLayout grid = new GridBagLayout();    GridBagConstraints c = new GridBagConstraints();    JButton closeButton = new JButton( "Close" );    JButton gcButton = new JButton( "Garbage Collection" );    JLabel total = new JLabel("0k");    JLabel free = new JLabel("0k");    JLabel used = new JLabel("0k");    JPanel middle = new JPanel(grid);    static MemoryDialog instance = null;    javax.swing.Timer timer = new javax.swing.Timer(3000, new TimerListener());    Runtime rt = Runtime.getRuntime();    long totalk = 0;    long freek = 0;    long usedk = 0;    java.text.NumberFormat nf = java.text.NumberFormat.getInstance();    public static void main(String args[])    {       MemoryDialog.getInstance(null);    }    class TimerListener implements ActionListener    {        public void actionPerformed(ActionEvent e) {setMemory();}    }    public static MemoryDialog getInstance(JFrame parent)    {        if( instance == null ) instance = new MemoryDialog(parent);        return instance;    }    private MemoryDialog(JFrame parent)    {        super(parent, "Heap Statistics");        JPanel main = (JPanel)getContentPane();        main.setLayout(new BorderLayout());        main.setBorder(BorderFactory.createTitledBorder("Heap Statistics"));        middle.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 20));        c.gridx = 0;        c.gridy = -1;        c.weightx = .5;        addElement("Total Memory:", total);        addElement("Used Memory:", used);        addElement("Free Memory:", free);        c.weighty = 1;        c.gridwidth = 2;        c.gridy++;        JLabel blank = new JLabel();        grid.setConstraints(blank, c);        middle.add(blank);        main.add(middle, BorderLayout.CENTER);        JPanel buttons = new JPanel();        buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));        buttons.add(Box.createHorizontalGlue());        buttons.add(gcButton);        buttons.add(closeButton);        buttons.add(Box.createHorizontalGlue());        buttons.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));        addWindowListener(new WindowAdapter()        {            public void windowClosed(WindowEvent e)            {                closeHandler();            }        });        closeButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                closeHandler();            }        });        gcButton.addActionListener(new ActionListener()        {            public void actionPerformed(ActionEvent e)            {                System.gc();                System.gc();                setMemory();            }        });        main.add(buttons, BorderLayout.SOUTH);        setMemory();        timer.start();        pack();	setSize(new Dimension(310,140));	setLocationRelativeTo(parent);        setVisible(true);    }    private void closeHandler()    {	timer.stop();        setVisible(false);	instance = null;    }    private void setMemory()    {        totalk = rt.totalMemory() / 1024;        freek = rt.freeMemory() / 1024;        usedk = totalk - freek;        this.total.setText(nf.format(totalk));        this.free.setText(nf.format(freek));        this.used.setText(nf.format(usedk));    }    private void addElement(String title, JLabel label)    {        c.gridx = 0;        c.gridy++;	c.weightx = .5;        c.anchor = GridBagConstraints.EAST;        JLabel t = new JLabel(title);        t.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 10));        grid.setConstraints(t, c);        middle.add(t);        c.gridx++;        grid.setConstraints(label,c);        middle.add(label);	c.weightx = 0;	c.gridx++;	JLabel k = new JLabel("k");	k.setBorder(BorderFactory.createEmptyBorder(0,0,0,20));	grid.setConstraints(k,c);	middle.add(k);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -