
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 界面程序 实现一个选择本地电脑文件的功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)