前言
白天遇到的窒息问题,晚上回来用自己的电脑写了一下,却没有遇到,mmp呦,明天去再对一下代码,这里记录一下,这份代码没啥问题
结构
代码
增加选项卡
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class addTab implements MouseListener{
JPanel jp;
JLabel lab ;
JLabel lab3=new JLabel();
public addTab(JPanel panel){
lab= new JLabel("选项卡1");
JLabel lab1 = new JLabel("选项卡");
jp=new JPanel();
GridLayout gl= new GridLayout(1,1,10,0);
jp.setLayout(gl);
lab1.setHorizontalAlignment(JLabel.LEFT);//设置文字显示在最左边
lab3.setHorizontalAlignment(JLabel.RIGHT);// 设置文字显示在最右边
jp.add(lab1);
jp.add(lab3);
MainFrame.pane.addTab("i",panel);
MainFrame.pane.setTabComponentAt(MainFrame.pane.indexOfComponent(panel),jp);//实现这个功能的就这一条最重要的语句
lab3.addMouseListener(this);
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
MainFrame.pane.remove(MainFrame.pane.indexOfTabComponent(jp));
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
lab3.setText("x ");
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
lab3.setText("");
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
主方法
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import javax.swing.BoxLayout;
public class MainFrame extends JFrame{
private static final long serialVersionUID = 1L;
static JTabbedPane pane;
public MainFrame() {
super("选项卡窗格");
setVisible(true);
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane);
JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);
panel.setPreferredSize(new Dimension(400,300));
JMenuItem mi = new JMenuItem("增加");
JMenu menu = new JMenu("增加");
menu.add(mi);
JMenuBar bar = new JMenuBar();
bar.add(menu);
setJMenuBar(bar);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
pane = new JTabbedPane();
pane.setBounds(0, 0, 300, 200);
pane.setVisible(true);
panel.add(pane);
new addTab(new Panel2());
new addTab(new Panel());
mi.addActionListener(event -> {
new addTab(new Panel());
});
}
public static void main(String[] args) throws Exception{
new MainFrame();
}
}
panel添加滚动条
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JComboBox;
public class Panel extends JPanel {
/**
* Create the panel.
*/
public Panel() {
setBounds(0, 0, 200, 300);
setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
add(scrollPane);
JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);
panel.setPreferredSize(new Dimension(400,300));
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(30, 223, 113, 27);
panel.add(btnNewButton);
JComboBox comboBox = new JComboBox();
comboBox.setBounds(200, 250, 37, 24);
panel.add(comboBox);
}
public static void main(String[] args) {
new Panel();
}
}
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
public class Panel2 extends JPanel {
/**
* Create the panel.
*/
public Panel2() {
setBounds(0, 0, 200, 300);
setLayout(new BorderLayout(0, 0));
JScrollPane scrollPane = new JScrollPane();
add(scrollPane);
JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);
panel.setPreferredSize(new Dimension(400,300));
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(30, 223, 113, 27);
panel.add(btnNewButton);
}
public static void main(String[] args) {
new Panel2();
}
}