package mdi;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.ImageObserver;
public class ImgButton extends Component{
private int type = 0;
private String text;
Image img;
public ImgButton(int type, String text) {
super();
this.type = type;
this.text = text;
img = Toolkit.getDefaultToolkit().getImage(getClass().getResource("v2-c826d13c8b63bd415ad594d4d5780094_fhd.jpg"));
}
@Override
public void paint(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), 0, 0, img.getWidth(this), img.getHeight(this), this);
g.setFont(new Font("宋体", 0, 30));
g.drawString(text, 40, 20);
}
}
package mdi;
import javax.swing.JInternalFrame;
public class MdiChildren extends JInternalFrame{
public MdiChildren() {
setSize(300, 300);
setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
setMaximizable(true);
setClosable(true);
setVisible(true);
}
}
package mdi;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Main extends JFrame{
public static void main(String[] args) {
new Main();
}
JDesktopPane desktop = new JDesktopPane();
JPanel left = new JPanel(new FlowLayout(0, 20, 20));
public Main() {
setSize(500, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(3);
JMenuBar bar = new JMenuBar();
JMenu m1 = new JMenu("文件");
JMenuItem m11 = new JMenuItem("打开");
m1.add(m11);
bar.add(m1);
setJMenuBar(bar);
desktop.setBackground(Color.gray);
setLayout(new BorderLayout());
m11.addActionListener(act);
left.setBackground(new Color(255, 128, 128));
left.setPreferredSize(new Dimension(200, 0));
for(int i = 0; i < 10; i++) {
ImgButton b = new ImgButton(i, ""+i);
b.setPreferredSize(new Dimension(160, 40));
left.add(b);
}
add(left, BorderLayout.WEST);
add(desktop, BorderLayout.CENTER);
setVisible(true);
}
ActionListener act = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
desktop.add(new MdiChildren());
}
};
}
效果图:
package myButton;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MyButton extends Component implements MouseListener{
public MyButton() {
addMouseListener(this);
}
private boolean checked = false;
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
repaint();
}
@Override
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.YELLOW);
double jg = getHeight()*0.15;
if(!checked)
g.fillOval((int)jg, (int)jg, (int)(getHeight()*0.7), (int)(getHeight()*0.7));
else
g.fillOval((int)(getWidth() - getHeight()*0.85), (int)jg, (int)(getHeight()*0.7), (int)(getHeight()*0.7));
}
@Override
public void mouseClicked(MouseEvent e) {
setChecked(!checked);
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
package myButton;
import javax.swing.JFrame;
public class Win extends JFrame{
public Win() {
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
MyButton bt = new MyButton();
bt.setSize(100, 40);
add(bt);
setVisible(true);
}
}
package myButton;
public class Main {
public static void main(String[] args) {
new Win();
}
}
效果图: