如何给JTabbedPane的选项卡上加一个图标与关闭按钮

如何给JTabbedPane的选项卡上加一个图标与关闭按钮,第1张

swing没有带关闭按钮的选项卡,swing的选项卡组件为JTabbedPane,是不带关闭按钮的,要实现带关闭按钮的选项卡,最直接的方法是重写JTabbedPane的UI,其次也可以用组件组合的方式来模拟选项卡页面,然后用卡片式布局来设置这些选项页面的切换关系

Java为安全应用提供了丰富的API,J2SDK14 的JSSE (JavaTM Secure Socket Extension) 包括javaxsecuritycertificate包,并且提供对证书的 *** 作方法,代码如下:

import javaxswing;

import javaawt;

import javaawtevent;

import javaxswingtable;

import javasecuritycertCertificateFactory;

import javasecuritycertX509Certificate;

import javaio;

public class CARead extends JPanel {

private String CA_Name;

private String CA_ItemData[][] = new String[9][2];

private String[] columnNames = {"证书字段标记","内容" };

public CARead(String CertName) {

CA_Name=CertName;

/ 三个Panel用来显示证书内容/

JTabbedPane tabbedPane = new JTabbedPane();

JPanel panelNormal = new JPanel();

tabbedPaneaddTab("普通信息", panelNormal);

JPanel panelAll=new JPanel();

panelAllsetLayout(new BorderLayout());

tabbedPaneaddTab("所有信息",panelAll);

JPanel panelBase64=new JPanel();

panelBase64setLayout(new BorderLayout());

tabbedPaneaddTab("Base64编码信息",panelBase64);

/ 读取证书常规信息 /

Read_Normal(panelNormal);

/ 读取证书文件字符串表示内容 /

Read_Bin(panelAll);

/ 读取证原始Base64编码形式的证书文件 /

Read_Raw(panelBase64);

tabbedPanesetSelectedIndex(0);

setLayout(new GridLayout(1, 1));

add(tabbedPane);

}

}

定义证书信息的读取函数如下:

private int Read_Normal(JPanel panel){

String Field;

try{

CertificateFactory certificate_factory=CertificateFactorygetInstance("X509");

FileInputStream file_inputstream=new FileInputStream(CA_Name);

X509Certificate

x509certificate=(X509Certificate)certificate_factorygenerateCertificate

(file_inputstream);

Field=x509certificategetType();

CA_ItemData[0][0]="类型";

CA_ItemData[0][1]=Field;

Field=IntegertoString(x509certificategetVersion());

CA_ItemData[1][0]="版本";

CA_ItemData[1][1]=Field;

Field=x509certificategetSubjectDN()getName();

CA_ItemData[2][0]="标题";

CA_ItemData[2][1]=Field;

/ 以下类似,这里省略

Field=x509certificategetNotBefore()toString();得到开始有效日期

Field=x509certificate getNotAfter()toString();得到截止日期

Field=x509certificategetSerialNumber()toString(16);得到序列号

Field=x509certificategetIssuerDN()getName();得到发行者名

Field=x509certificategetSigAlgName();得到签名算法

Field=x509certificategetPublicKey()getAlgorithm();得到公钥算法 /

file_inputstreamclose();

final JTable table = new JTable(CA_ItemData, columnNames);

TableColumn tc=null;

tc = tablegetColumnModel()getColumn(1);

tcsetPreferredWidth(600);

paneladd(table);

}catch(Exception exception){

exceptionprintStackTrace();

return -1;

}

return 0;

}

import javaio;

import javaawt;

import javaxswing;

import javaawtevent;

public class YFileChooser implements ActionListener{

    JFrame frame=new JFrame("文件选择器实例");

    JTabbedPane tabPane=new JTabbedPane();//选项卡布局

    Container con=new Container();//布局1

    Container con1=new Container();//布局2

    JLabel label1=new JLabel("选择目录");

    JLabel label2=new JLabel("选择文件");

    JTextField text1=new JTextField();

    JTextField text2=new JTextField();

    JButton button1=new JButton("");

    JButton button2=new JButton("");

    JFileChooser jfc=new JFileChooser();//文件选择器

    YFileChooser(){

        jfcsetCurrentDirectory(new File("d:\\"));//文件选择器的初始目录定为d盘

        //下面两行是取得屏幕的高度和宽度

        double lx=ToolkitgetDefaultToolkit()getScreenSize()getWidth();

        double ly=ToolkitgetDefaultToolkit()getScreenSize()getHeight();

        framesetLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150));//设定窗口出现位置

        framesetSize(300,150);//设定窗口大小

        framesetContentPane(tabPane);//设置布局

       //下面设定标签等的出现位置和高宽

        label1setBounds(10,10,70,20);

        label2setBounds(10,30,100,20);

        text1setBounds(80,10,120,20);

        text2setBounds(80,30,120,20);

        button1setBounds(210,10,50,20);

        button2setBounds(210,30,50,20);

        button1addActionListener(this);//添加事件处理

        button2addActionListener(this);//添加事件处理

        conadd(label1);

        conadd(label2);

        conadd(text1);

        conadd(text2);

        conadd(button1);

        conadd(button2);

        conadd(jfc);

        tabPaneadd("目录/文件选择",con);//添加布局1

        tabPaneadd("暂无内容",con1);//添加布局2

        framesetVisible(true);//窗口可见

        framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);//使能关闭窗口,结束程序

    }

    public void actionPerformed(ActionEvent e){//事件处理

        if(egetSource()equals(button1)){//判断触发方法的按钮是哪个

            jfcsetFileSelectionMode(1);//设定只能选择到文件夹

            int state=jfcshowOpenDialog(null);//此句是打开文件选择器界面的触发语句

            if(state==1){

                return;//撤销则返回

            }

            else{

                File f=jfcgetSelectedFile();//f为选择到的目录

                text1setText(fgetAbsolutePath());

            }

        }

        if(egetSource()equals(button2)){

            jfcsetFileSelectionMode(0);//设定只能选择到文件

            int state=jfcshowOpenDialog(null);//此句是打开文件选择器界面的触发语句

            if(state==1){

                return;//撤销则返回

            }

            else{

                File f=jfcgetSelectedFile();//f为选择到的文件

                text2setText(fgetAbsolutePath());

            }

        }

    }

    public static void main(String[] args) {

        new YFileChooser();

    }

}

不用谢~请叫我雷锋

对 JTabbedPane 添加鼠标的事件监听器(addMouseListener),然后重写

public void mouseEntered(MouseEvent e)

public void mouseExited(MouseEvent e)

这两个方法,mouseEntered方法 在鼠标进入组件时触发,此时可以修改当前选项卡的字体颜色;mouseExited方法 在鼠标移出组件时触发,此时恢复原来的字体颜色。

以上就是关于如何给JTabbedPane的选项卡上加一个图标与关闭按钮全部的内容,包括:如何给JTabbedPane的选项卡上加一个图标与关闭按钮、java怎么去获取证书文件的信息、急求一个简单的java 界面程序 实现一个选择本地电脑文件的功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9310206.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存