📄 baseview.java
字号:
package project;
import javax.swing.*;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentAdapter;
import java.awt.Font;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class BaseView
extends JPanel {
private JPanel Up_Down_Panel = null;
private JLabel Up_Button = null;
private JLabel Down_Button = null;
private JPanel Btn_Panel = null;
JPanel[] panel = null;
int space_size;
Timer t = null;
int delay = 200;
ActionListener taskPerformer1 = null;
ActionListener taskPerformer2 = null;
public BaseView(JPanel[] panel, int space_size, JPanel abp, String label_name) {
this.panel = panel;
this.space_size = space_size;
this.Btn_Panel = abp;
if (label_name != null) {
jLabel1 = new JLabel(label_name, SwingConstants.LEFT);
}
try {
jbInit();
taskPerformer1 = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Down_Btn_Move();
}
};
taskPerformer2 = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Up_Btn_Move();
}
};
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(null);
if (jLabel1 == null) {
jLabel1 = new JLabel("jLabel1", SwingConstants.CENTER);
}
jLabel1.setBorder(BorderFactory.createEtchedBorder());
jLabel1.setBounds(new Rectangle(0, 0, 200, 30));
jLabel1.setOpaque(true);
jLabel1.setBackground(Color.lightGray);
jLabel1.setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
jLabel1.addMouseListener(new BaseView_jLabel1_mouseAdapter(this));
this.setSize(200, 200);
Up_Down_Panel = new JPanel();
Up_Down_Panel.setLayout(null);
Up_Down_Panel.setBounds(new Rectangle(1, 34, 200, 170));
Up_Down_Panel.setOpaque(false);
Up_Button = new JLabel("UP", SwingConstants.CENTER);
Up_Button.setForeground(Color.RED);
Up_Button.setBounds(new Rectangle(0, 0, 200, 25));
Up_Button.addMouseListener(new BaseView_Up_Button_mouseAdapter(this));
Down_Button = new JLabel("DOWN", SwingConstants.CENTER);
Down_Button.setForeground(Color.RED);
Down_Button.setBounds(new Rectangle(0, Up_Down_Panel.getHeight() - 25, 200,
25));
Down_Button.addMouseListener(new BaseView_Down_Button_mouseAdapter(this));
Up_Down_Panel.add(Up_Button);
Up_Down_Panel.add(Down_Button);
Btn_Panel.setLocation(0, jLabel1.getHeight());
Btn_Panel.addComponentListener(new BaseView_Btn_Panel_componentAdapter(this));
this.add(jLabel1);
this.add(Btn_Panel);
this.add(Up_Down_Panel);
}
JLabel jLabel1 = null;
public void jLabel1_mouseEntered(MouseEvent e) {
jLabel1.setBorder(BorderFactory.createRaisedBevelBorder());
}
public void jLabel1_mouseExited(MouseEvent e) {
jLabel1.setBorder(BorderFactory.createEtchedBorder());
}
public void jLabel1_mousePressed(MouseEvent e) {
jLabel1.setBorder(BorderFactory.createLoweredBevelBorder());
}
public void jLabel1_mouseReleased(MouseEvent e) {
jLabel1.setBorder(BorderFactory.createRaisedBevelBorder());
}
public void Up_Button_mouseEntered(MouseEvent e) {
Up_Button.setBorder(BorderFactory.createRaisedBevelBorder());
Up_Button.setOpaque(true);
}
public void Up_Button_mouseExited(MouseEvent e) {
Up_Button.setBorder(BorderFactory.createEtchedBorder());
Up_Button.setOpaque(false);
Up_Button.updateUI();
}
public void Up_Button_mousePressed(MouseEvent e) {
Up_Button.setBorder(BorderFactory.createLoweredBevelBorder());
t = new Timer(delay, taskPerformer2);
t.start();
}
public void Up_Button_mouseReleased(MouseEvent e) {
Up_Button.setBorder(BorderFactory.createRaisedBevelBorder());
t.stop();
}
public void Down_Button_mouseEntered(MouseEvent e) {
Down_Button.setBorder(BorderFactory.createRaisedBevelBorder());
Down_Button.setOpaque(true);
}
public void Down_Button_mouseExited(MouseEvent e) {
Down_Button.setBorder(BorderFactory.createEtchedBorder());
Down_Button.setOpaque(false);
this.repaint();
}
public void Down_Button_mousePressed(MouseEvent e) {
Down_Button.setBorder(BorderFactory.createLoweredBevelBorder());
t = new Timer(delay, taskPerformer1);
t.start();
}
public void Down_Button_mouseReleased(MouseEvent e) {
Down_Button.setBorder(BorderFactory.createRaisedBevelBorder());
t.stop();
}
public void Btn_Panel_componentMoved(ComponentEvent e) {
if (Btn_Panel.getLocation().y >= jLabel1.getHeight()) {
Up_Button.setVisible(false);
}
else {
Up_Button.setVisible(true);
Up_Button.setBorder(BorderFactory.createEmptyBorder());
}
if ( (Btn_Panel.getLocation().y + Btn_Panel.getHeight()) >
(Up_Down_Panel.getLocation().y + Up_Down_Panel.getHeight())) {
Down_Button.setVisible(true);
Down_Button.setBorder(BorderFactory.createEmptyBorder());
}
else {
Down_Button.setVisible(false);
}
}
private void setShowDownBtn() {
Up_Button.setVisible(false);
if (Btn_Panel.getHeight() > this.space_size) {
Down_Button.setVisible(true);
}
else {
Down_Button.setVisible(false);
}
}
//面板收缩事件
private void myClick() {
if (this.getHeight() <= jLabel1.getHeight()) {
for (int i = 0; i < panel.length; i++) {
panel[i].setSize(200, jLabel1.getHeight());
( (BaseView) panel[i]).getlabel().setBackground(Color.lightGray);
( (BaseView) panel[i]).getlabel().setForeground(Color.BLACK);
if (i == 0) {
panel[i].setLocation(0, 0);
}
else {
panel[i].setLocation(0,
panel[i - 1].getLocation().y + panel[i -
1].getHeight());
}
Btn_Panel.setLocation(0, jLabel1.getHeight());
}
this.setSize(200, jLabel1.getHeight() + this.space_size);
Up_Down_Panel.setSize(200, this.getHeight() - jLabel1.getHeight());
Down_Button.setLocation(0, Up_Down_Panel.getHeight() - 25);
this.setShowDownBtn();
for (int i = 0; i < panel.length; i++) {
if (panel[i].getHeight() > jLabel1.getHeight()) {
for (int j = i + 1; j < panel.length; j++) {
panel[j].setLocation(0,
panel[j - 1].getLocation().y + panel[j -
1].getHeight());
}
break;
}
}
}
else {
for (int i = 0; i < panel.length; i++) {
if (panel[i].getHeight() > jLabel1.getHeight()) {
for (int j = i + 1; j < panel.length; j++) {
panel[j].setLocation(0,
panel[j - 1].getLocation().y +
jLabel1.getHeight());
}
}
}
this.setSize(200, jLabel1.getHeight());
}
}
public JLabel getlabel() {
return this.jLabel1;
}
public JPanel getAddBtnPanel() {
return this.Btn_Panel;
}
private JPanel getUpDownPanel() {
return this.Up_Down_Panel;
}
private JLabel getDownBtn() {
return this.Down_Button;
}
private JLabel getUpBtn() {
return this.Up_Button;
}
public static void call_resize(BaseView[] panel, int reHeight) {
int open_panel_num = -1;
for (int i = 0; i < panel.length; i++) {
if (panel[i].getHeight() > panel[i].getlabel().getHeight()) {
open_panel_num = i;
break;
}
}
for (int i = 0; i < panel.length; i++) {
panel[i].setSize(200, panel[i].getlabel().getHeight());
if (i == 0) {
panel[i].setLocation(0, 0);
}
else {
panel[i].setLocation(0,
panel[i - 1].getLocation().y + panel[i - 1].getHeight());
}
panel[i].getAddBtnPanel().setLocation(0, panel[i].getlabel().getHeight());
panel[i].space_size = reHeight;
}
if (open_panel_num != -1) {
panel[open_panel_num].setSize(200,
panel[open_panel_num].getlabel().getHeight() +
panel[open_panel_num].space_size);
panel[open_panel_num].getUpDownPanel().setSize(200,
panel[open_panel_num].getHeight() -
panel[open_panel_num].getlabel().getHeight());
panel[open_panel_num].getDownBtn().setLocation(0,
panel[open_panel_num].getUpDownPanel().getHeight() - 25);
panel[open_panel_num].getUpBtn().setVisible(false);
if (panel[open_panel_num].getAddBtnPanel().getHeight() >
panel[open_panel_num].space_size) {
panel[open_panel_num].getDownBtn().setVisible(true);
}
else {
panel[open_panel_num].getDownBtn().setVisible(false);
}
for (int i = open_panel_num + 1; i < panel.length; i++) {
panel[i].setLocation(0,
panel[i - 1].getLocation().y + panel[i - 1].getHeight());
}
}
}
private void Down_Btn_Move() {
int space = (Btn_Panel.getLocation().y + Btn_Panel.getHeight()) -
(Up_Down_Panel.getLocation().y + Up_Down_Panel.getHeight());
if (space > 5) {
Btn_Panel.setLocation(0, Btn_Panel.getLocation().y - 5);
}
else {
Btn_Panel.setLocation(0, Btn_Panel.getLocation().y - space);
Down_Button.setVisible(false);
t.stop();
}
}
private void Up_Btn_Move() {
int space = Btn_Panel.getLocation().y - jLabel1.getHeight();
if (space < -5) {
Btn_Panel.setLocation(0, Btn_Panel.getLocation().y + 5);
}
else {
Btn_Panel.setLocation(0, Btn_Panel.getLocation().y - space);
Up_Button.setVisible(false);
t.stop();
}
}
public void jLabel1_mouseClicked(MouseEvent e) {
myClick();
if (jLabel1.getBackground() == Color.LIGHT_GRAY) {
jLabel1.setBackground(Color.DARK_GRAY);
jLabel1.setForeground(Color.WHITE);
}
else {
jLabel1.setBackground(Color.lightGray);
jLabel1.setForeground(Color.BLACK);
}
}
}
class BaseView_Up_Button_mouseAdapter
extends MouseAdapter {
private BaseView adaptee;
BaseView_Up_Button_mouseAdapter(BaseView adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.Up_Button_mousePressed(e);
}
public void mouseExited(MouseEvent e) {
adaptee.Up_Button_mouseExited(e);
}
public void mouseReleased(MouseEvent e) {
adaptee.Up_Button_mouseReleased(e);
}
public void mouseEntered(MouseEvent e) {
adaptee.Up_Button_mouseEntered(e);
}
}
class BaseView_Down_Button_mouseAdapter
extends MouseAdapter {
private BaseView adaptee;
BaseView_Down_Button_mouseAdapter(BaseView adaptee) {
this.adaptee = adaptee;
}
public void mouseReleased(MouseEvent e) {
adaptee.Down_Button_mouseReleased(e);
}
public void mousePressed(MouseEvent e) {
adaptee.Down_Button_mousePressed(e);
}
public void mouseExited(MouseEvent e) {
adaptee.Down_Button_mouseExited(e);
}
public void mouseEntered(MouseEvent e) {
adaptee.Down_Button_mouseEntered(e);
}
}
class BaseView_Btn_Panel_componentAdapter
extends ComponentAdapter {
private BaseView adaptee;
BaseView_Btn_Panel_componentAdapter(BaseView adaptee) {
this.adaptee = adaptee;
}
public void componentMoved(ComponentEvent e) {
adaptee.Btn_Panel_componentMoved(e);
}
}
class BaseView_jLabel1_mouseAdapter
extends MouseAdapter {
private BaseView adaptee;
BaseView_jLabel1_mouseAdapter(BaseView adaptee) {
this.adaptee = adaptee;
}
public void mouseExited(MouseEvent e) {
adaptee.jLabel1_mouseExited(e);
}
public void mouseClicked(MouseEvent e) {
adaptee.jLabel1_mouseClicked(e);
}
public void mousePressed(MouseEvent e) {
adaptee.jLabel1_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
adaptee.jLabel1_mouseReleased(e);
}
public void mouseEntered(MouseEvent e) {
adaptee.jLabel1_mouseEntered(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -