Java Swing JLabel、JPanel、JList、窗口放大缩小、最小化

yzmm
1307 阅读
父Panel设置背景图:
jPanel1 = new JPanel() {
    public void paintComponent(Graphics g) {
        ImageIcon icon = new ImageIcon(this.getClass().getClassLoader().getResource("images/top_title_bg.png"));
        // 图片随窗体大小而变化
        g.drawImage(icon.getImage(), 0, 0, this.getSize().width,this.getSize().height,this);
    }
};

子Panel透明:

jPanel3.setBackground(null);
jPanel3.setOpaque(false);

JLabel的背景颜色:

jLabel.setOpaque(true);
jLabel.setBackground(Color.RED);

Swing JList 添加JLabel(Renderer):

jList1 = new javax.swing.JList();
DefaultListModel dlm = new DefaultListModel();
dlm.addElement(new JLabel("yzmm", new ImageIcon(this.getClass().getClassLoader().getResource("images/menu_bar_home_icon.png")), SwingConstants.CENTER));
dlm.addElement(new JLabel("我的所有文件", new ImageIcon(this.getClass().getClassLoader().getResource("images/menu_bar_file_icon.png")), SwingConstants.CENTER));
dlm.addElement(new JLabel("桌面", new ImageIcon(this.getClass().getClassLoader().getResource("images/menu_bar_desktop_icon.png")), SwingConstants.CENTER));
jList1.setCellRenderer(new DefaultListCellRenderer(){
    private static final long serialVersionUID = 1L;
    @Override
    public Component getListCellRendererComponent(JList list, Object value,
            int index, boolean isSelected, boolean cellHasFocus) {
        if (value instanceof JLabel) {
            this.setText(((JLabel) value).getText());
            this.setIcon(((JLabel) value).getIcon());
        }
        if (isSelected) {
            setBackground(list.getSelectionBackground());
            setForeground(list.getSelectionForeground());
        } else {
            setBackground(list.getBackground());
            setForeground(list.getForeground());
        }
        return this;
    }
});
jList1.setModel(dlm);
jList1.setBorder(null);
jList1.setBackground(null);
jList1.setOpaque(false);
jScrollPane1.setViewportView(jList1);

可拖动:

addMouseListener(new MouseAdapter() {
       /**
       * 按下(mousePressed 不是点击,而是鼠标被按下没有抬起
       */
       public void mousePressed(MouseEvent e) {
            origin.x = e.getX();  //当鼠标按下的时候获得窗口当前的位置
            origin.y = e.getY();
       }
});
addMouseMotionListener(new MouseMotionAdapter() {
       /**
       * 拖动(mouseDragged 指的不是鼠标在窗口中移动,而是用鼠标拖动)
       */
       public void mouseDragged(MouseEvent e) {
            Point p = getLocation();//当鼠标拖动时获取窗口当前位置
            //设置窗口的位置
            //窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置
            setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y);
       }
});

居中(初始化末尾处加):

int screenWidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;
Dimension d = getPreferredSize();
this.setBounds(screenWidth / 2 - (d.width/2), screenHeight / 2 - (d.height/2), d.width, d.height);

窗口放大缩小:

Dimension d1 = this.getContentPane().getSize();
Dimension d2 = this.getPreferredSize();
if(!d1.equals(d2)){
     this.setExtendedState(JFrame.NORMAL);
}else{
     this.setExtendedState(JFrame.MAXIMIZED_BOTH);
}

最小化:

this.setExtendedState(JFrame.ICONIFIED);
文件选择:
    public void setSelectFile(JTextField jf) {
        int result = 0;
        String path = null;
        JFileChooser fileChooser = new JFileChooser();
        FileSystemView fsv = FileSystemView.getFileSystemView();
        fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
        fileChooser.setDialogTitle("请选择保存路径.");
        fileChooser.setApproveButtonText("确定");
        fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        result = fileChooser.showOpenDialog(fileChooser);
        if (JFileChooser.APPROVE_OPTION == result) {
            path = fileChooser.getSelectedFile().getPath();
        }
        jf.setText(path);
    }

评论 (0)

发表评论