java中如何调出字体对话框_java 字体对话框

本人不才!花了很长时间写了这个代码。不是很好,比起Windows自带的字体对话框差一点。

不过已经够用了。等将来有时间了,在进行完善。

如果有什么好的建议,可以提。本人再补。

预览效果如下图:

package styleDispose;

import java.awt.GraphicsEnvironment;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.ListModel;

import java.awt.Font;

import javax.swing.JPanel;

import java.awt.Rectangle;

import javax.swing.JScrollPane;

import javax.swing.BorderFactory;

import javax.swing.border.TitledBorder;

import java.awt.Color;

import javax.swing.JList;

import javax.swing.JLabel;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JTextField;

import javax.swing.border.BevelBorder;

import javax.swing.border.SoftBevelBorder;

import javax.swing.JButton;

import javax.swing.SwingConstants;

public class FontChooserDialog extends JDialog {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

* 界面设计需要

* */

private JPanel jPanel = null;

private JScrollPane jScrollPane = null;

private JPanel jPanel1 = null;

private JLabel jLabel = null;

private JLabel jLabel1 = null;

private JLabel jLabel2 = null;

private JTextField fontNameText = null;

private JTextField fontItalicText = null;

private JTextField fontSizeText = null;

private JList fontNameList = null;

private JList fontItalicList = null;

private JList fontSizeList = null;

private JPanel jPanel2 = null;

private JButton okButton = null;

private JButton regitButton = null;

private JButton cancleButton = null;

private JScrollPane jScrollPane1 = null;

private JScrollPane jScrollPane2 = null;

private JScrollPane jScrollPane3 = null;

private static JLabel fontStyle = null;

/**

* 字体默认变量

* */

private Font defaultFont = new Font("\u5b8b\u4f53", Font.PLAIN, 12);

/**

* 返回字体变量

* */

private static Font returnFont = null;

/**

* Boolean 变量,判断是否正常返回,是否用户选择了字体

* */

private static boolean judge = false;

/**

* 以防止事件重复调用或不必要的更改,定义两个boolean变量分别

* 为:fontNameList和fontSizeList判断

* 等于true则循环调用,false则不

* */

private boolean nameJuge = true;

private boolean sizeJuge = true;

public FontChooserDialog(){

this(null);

}

public FontChooserDialog(JFrame jframe){

this(jframe,true);

}

public FontChooserDialog(JFrame jframe,boolean boo){

this(jframe,boo,null);

}

public FontChooserDialog(JFrame jframe,boolean boo,Font font){

super(jframe,boo);

initialize();

initializeFont(font);

this.setLocationRelativeTo(jframe);

}

/**

* This method initializes this

*

*/

private void initialize() {

this.setContentPane(getJPanel());

this.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

this.setBounds(new Rectangle(0, 0, 430, 335));

this.setTitle("字体选择对话框");

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e) {

judge = false;

closeWindow();

}

});

}

public static Font showDialog(JFrame jframe,boolean boo){

return showDialog(jframe,boo,null);

}

public static Font showDialog(JFrame jframe,boolean boo,Font font){

JDialog jd = new FontChooserDialog(jframe,boo,font);

jd.setVisible(true);

if(judge){returnFont = fontStyle.getFont();}

jd.dispose();

return returnFont;

}

/**

* This method initializes jPanel

*

* @return javax.swing.JPanel

*/

private JPanel getJPanel() {

if (jPanel == null) {

jPanel = new JPanel();

jPanel.setLayout(null);

jPanel.setFont(new Font("Dialog", Font.PLAIN, 12));

jPanel.add(getJPanel1(), null);

jPanel.add(getJPanel2(), null);

jPanel.add(getOkButton(), null);

jPanel.add(getRegitButton(), null);

jPanel.add(getCancleButton(), null);

}

return jPanel;

}

/**

* This method initializes jScrollPane

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJScrollPane() {

if (jScrollPane == null) {

fontStyle = new JLabel();

fontStyle.setText("你好!天生我才必有用!Hello World!");

fontStyle.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontStyle.setHorizontalAlignment(SwingConstants.CENTER);

fontStyle.setHorizontalTextPosition(SwingConstants.CENTER);

jScrollPane = new JScrollPane();

jScrollPane.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));

jScrollPane.setViewportView(fontStyle);

jScrollPane.setBounds(new Rectangle(5, 20, 400, 60));

}

return jScrollPane;

}

/**

* This method initializes jPanel1

*

* @return javax.swing.JPanel

*/

private JPanel getJPanel1() {

if (jPanel1 == null) {

jLabel2 = new JLabel();

jLabel2.setBounds(new Rectangle(285, 5, 120, 15));

jLabel2.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

jLabel2.setText("大小:");

jLabel1 = new JLabel();

jLabel1.setBounds(new Rectangle(160, 5, 120, 15));

jLabel1.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

jLabel1.setText("字型:");

jLabel = new JLabel();

jLabel.setBounds(new Rectangle(5, 5, 150, 15));

jLabel.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);

jLabel.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

jLabel.setText("字体:");

jPanel1 = new JPanel();

jPanel1.setLayout(null);

jPanel1.setBounds(new Rectangle(5, 5, 410, 175));

jPanel1.setBorder(new SoftBevelBorder(SoftBevelBorder.LOWERED));

jPanel1.add(jLabel, null);

jPanel1.add(jLabel1, null);

jPanel1.add(jLabel2, null);

jPanel1.add(getFontNameText(), null);

jPanel1.add(getFontItalicText(), null);

jPanel1.add(getFontSizeText(), null);

jPanel1.add(getJScrollPane1(), null);

jPanel1.add(getJScrollPane2(), null);

jPanel1.add(getJScrollPane3(), null);

}

return jPanel1;

}

/**

* This method initializes fontNameText

*

* @return javax.swing.JTextField

*/

private JTextField getFontNameText() {

if (fontNameText == null) {

fontNameText = new JTextField();

fontNameText.setBounds(new Rectangle(5, 25, 150, 20));

fontNameText.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontNameText.addKeyListener(new KeyAdapter(){

public void keyTyped(KeyEvent e) {

String oldText = fontNameText.getText();

String newText = "";

if("".equals(fontNameText.getSelectedText()) && null == fontNameText.getSelectedText()){

newText = fontNameText.getText()+e.getKeyChar();

}else{

newText = oldText.substring(0,fontNameText.getSelectionStart())+e.getKeyChar()+oldText.substring(fontNameText.getSelectionEnd());

}

System.out.println("fontName:"+newText);

nameJuge = false;

fontNameList.setSelectedValue(getLateIndex(fontNameList,newText),true);

nameJuge = true;

}

});

}

return fontNameText;

}

/**

* This method initializes fontItalicText

*

* @return javax.swing.JTextField

*/

private JTextField getFontItalicText() {

if (fontItalicText == null) {

fontItalicText = new JTextField();

fontItalicText.setBounds(new Rectangle(160, 25, 120, 20));

fontItalicText.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontItalicText.setEnabled(false);

}

return fontItalicText;

}

/**

* This method initializes fontSizeText

*

* @return javax.swing.JTextField

*/

private JTextField getFontSizeText() {

if (fontSizeText == null) {

fontSizeText = new JTextField();

fontSizeText.setBounds(new Rectangle(285, 25, 120, 20));

fontSizeText.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontSizeText.setColumns(4);

fontSizeText.addKeyListener(new KeyAdapter(){

public void keyTyped(KeyEvent e) {

//System.out.println("Key Code:"+(Character.getNumericValue(e.getKeyChar())==-1));

String oldText = fontSizeText.getText();

String newText = "";

if("".equals(fontSizeText.getSelectedText()) && null == fontSizeText.getSelectedText()){

newText = fontSizeText.getText()+e.getKeyChar();

}else{

newText = oldText.substring(0,fontSizeText.getSelectionStart())+e.getKeyChar()+oldText.substring(fontSizeText.getSelectionEnd());

}

//System.out.println("fontSize:"+newText);

sizeJuge = false;

fontSizeList.setSelectedValue(getLateIndex(fontSizeList,newText),true);

if(newText.matches("(\\d)+")){

fontStyle.setFont(new Font(fontStyle.getFont().getFontName(),fontStyle.getFont().getStyle(),Integer.parseInt(newText)));

}

sizeJuge = true;

}

});

}

return fontSizeText;

}

/**

* This method initializes fontNameList

*

* @return javax.swing.JList

*/

private JList getFontNameList() {

if (fontNameList == null) {

fontNameList = new JList(GraphicsEnvironment.getLocalGraphicsEnvironment()

.getAvailableFontFamilyNames());

fontNameList.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontNameList

.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent e) {

if(nameJuge){fontNameText.setText(fontNameList.getSelectedValue().toString());}

fontStyle.setFont(new Font(fontNameList.getSelectedValue().toString(),fontStyle.getFont().getStyle(),fontStyle.getFont().getSize()));

}

});

}

return fontNameList;

}

/**

* This method initializes fontItalicList

*

* @return javax.swing.JList

*/

private JList getFontItalicList() {

if (fontItalicList == null) {

fontItalicList = new JList(new String[]{"Plain", "Bold", "Italic","Bold Italic"});

fontItalicList.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontItalicList

.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent e) {

fontItalicText.setText(fontItalicList.getSelectedValue().toString());

fontStyle.setFont(new Font(fontStyle.getFont().getFontName(),fontItalicList.getSelectedIndex(),fontStyle.getFont().getSize()));

}

});

}

return fontItalicList;

}

/**

* This method initializes fontSizeList

*

* @return javax.swing.JList

*/

private JList getFontSizeList() {

if (fontSizeList == null) {

fontSizeList = new JList(new String[]{"3", "4", "5", "6", "7", "8", "9", "10",

"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "22",

"24", "27", "30", "34", "39", "45", "51", "60"});

fontSizeList.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

fontSizeList

.addListSelectionListener(new javax.swing.event.ListSelectionListener() {

public void valueChanged(javax.swing.event.ListSelectionEvent e) {

if(sizeJuge){fontSizeText.setText(fontSizeList.getSelectedValue().toString());}

fontStyle.setFont(new Font(fontStyle.getFont().getFontName(),fontStyle.getFont().getStyle(),Integer.parseInt(fontSizeList.getSelectedValue().toString())));

}

});

}

return fontSizeList;

}

/**

* This method initializes jPanel2

*

* @return javax.swing.JPanel

*/

private JPanel getJPanel2() {

if (jPanel2 == null) {

jPanel2 = new JPanel();

jPanel2.setLayout(null);

jPanel2.setBounds(new Rectangle(3, 180, 414, 90));

jPanel2.setBorder(BorderFactory.createTitledBorder(null, "\u6548\u679c\u9884\u89c8", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("\u5b8b\u4f53", Font.PLAIN, 12), new Color(51, 51, 51)));

jPanel2.add(getJScrollPane(), null);

}

return jPanel2;

}

/**

* This method initializes okButton

*

* @return javax.swing.JButton

*/

private JButton getOkButton() {

if (okButton == null) {

okButton = new JButton();

okButton.setBounds(new Rectangle(215, 275, 60, 20));

okButton.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

okButton.setText("确定");

okButton.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

judge = true;

closeWindow();

}

});

}

return okButton;

}

/**

* This method initializes regitButton

*

* @return javax.swing.JButton

*/

private JButton getRegitButton() {

if (regitButton == null) {

regitButton = new JButton();

regitButton.setBounds(new Rectangle(285, 275, 60, 20));

regitButton.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

regitButton.setText("重置");

regitButton.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

initializeFont(null);

}

});

}

return regitButton;

}

/**

* This method initializes cancleButton

*

* @return javax.swing.JButton

*/

private JButton getCancleButton() {

if (cancleButton == null) {

cancleButton = new JButton();

cancleButton.setBounds(new Rectangle(355, 275, 60, 20));

cancleButton.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));

cancleButton.setText("取消");

cancleButton.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

judge = false;

closeWindow();

}

});

}

return cancleButton;

}

/**

* This method initializes jScrollPane1

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJScrollPane1() {

if (jScrollPane1 == null) {

jScrollPane1 = new JScrollPane();

jScrollPane1.setBounds(new Rectangle(5, 50, 150, 120));

jScrollPane1.setViewportView(getFontNameList());

}

return jScrollPane1;

}

/**

* This method initializes jScrollPane2

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJScrollPane2() {

if (jScrollPane2 == null) {

jScrollPane2 = new JScrollPane();

jScrollPane2.setBounds(new Rectangle(160, 50, 120, 120));

jScrollPane2.setViewportView(getFontItalicList());

}

return jScrollPane2;

}

/**

* This method initializes jScrollPane3

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJScrollPane3() {

if (jScrollPane3 == null) {

jScrollPane3 = new JScrollPane();

jScrollPane3.setBounds(new Rectangle(285, 50, 120, 120));

jScrollPane3.setViewportView(getFontSizeList());

}

return jScrollPane3;

}

/**

* 默认的字体初始化方法

* */

private void initializeFont(Font font){

if(font!=null){

defaultFont = font;

fontStyle.setFont(defaultFont);

}

fontStyle.setFont(defaultFont);

fontNameList.setSelectedValue(defaultFont.getFontName(), true);

fontSizeList.setSelectedValue(new Integer(defaultFont.getSize()).toString(), true);

fontItalicList.setSelectedIndex(defaultFont.getStyle());

}

/**

* 判断里给定的值最近的索引

* */

private Object getLateIndex(JList jlist,String str){

ListModel list = jlist.getModel();

if(str.matches("(\\d)+")){

for(int i = list.getSize()-1;i>=0;i--){

if(Integer.parseInt(list.getElementAt(i).toString())<=Integer.parseInt(str)){

return list.getElementAt(i);

}

}

}else {

for(int i = list.getSize()-2;i>=0;i--){

if(str.compareToIgnoreCase(list.getElementAt(i).toString())==0){

return list.getElementAt(i);

}else if(str.compareToIgnoreCase(list.getElementAt(i).toString())>0){

return list.getElementAt(i+1);

}

}

}

return list.getElementAt(0);

}

/**

* 窗体关闭方法!

* */

private void closeWindow(){

this.setVisible(false);

}

} // @jve:decl-index=0:visual-constraint="91,34"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为何苹果为何苹果甘愿冒险自主研发芯片?

来源&#xff1a;内容来自「腾讯科技」7月4日&#xff0c;据外媒报道&#xff0c;苹果不久前宣布将把Mac上使用的处理器从英特尔芯片迁移到自己的Apple Silicon上&#xff0c;尽管这是意料之中的事&#xff0c;但苹果为何甘愿冒险甚至似乎相当渴望进行这种转型的&#xff0c;仍…

用MXNet实现mnist的生成对抗网络(GAN)

用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络&#xff08;Generative Adversarial Network&#xff0c;简称GAN&#xff09;由一个生成网络与一个判别网络组成。生成网络从潜在空间&#xff08;latent space&#xff09;中随机采样作为输入&#xff0c;其输出结果需要尽…

java单元格合并多列_ElementUI表格列相同值自动合并单元格( 多列 )

上篇文章写了如何在处理单列相同数据时让相同的项进行自动合并, 如果有多列合并的需求我们也应该可以从容应对...(产品: 你们看我干嘛?)废话不多说 上代码HTMLJSvar Main {data() {return {tableData6: [{name: 部门1,type: 0,amount1: 跟单员1,amount2: 成衣工厂1,amount3: …

【MIT港科大】最新《贝叶斯深度学习》2020综述论文,35页pdf全面阐述最新进展...

来源&#xff1a;专知来自MIT和香港科技大学的学者最新《贝叶斯深度学习》综述论文&#xff0c;值得关注&#xff01;地址&#xff1a;https://www.zhuanzhi.ai/paper/9b781282204cb581a31aa0e8b570dd95摘要一个综合的人工智能系统不仅需要用不同的感官(如视觉和听觉)感知环境&…

VisualVM远程监控Java

1、服务器启动jstatd服务设置&#xff1a; jstatd将使用RMISecurityPolicy&#xff0c;并且需要指定安全策略文件. 安全策略文件必须符合安全策略语法&#xff0c;通过命令 jstatd -J-Djava.security.policyfile指定策略文件。以下的安全策略配制是可以访问所有代码库. grant c…

java枚举怎么编译不行的_java – 打开枚举时Maven编译失败

我是一个mavenifying(是一个单词&#xff1f;)一个项目,其构建过程到目前为止完全基于ant /shell脚本.请考虑以下枚举public enum ResourceType {A, B;}以下bean&#xff1a;public ResourceTypeOwner {//set get resourceType property}以下代码片段&#xff1a;void foo(Reso…

​ 长达35页!美国公布未来新兴科技趋势报告

本文来源&#xff1a;笔记侠未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云脑研究计划&#xff0c;构建互联网&#xff08;城市&#xff09;云脑技术和企业图…

Linux命令行之逗趣无极限

Reference: http://os.51cto.com/art/201304/390059.htm 【2013年4月18日 51CTO外电头条】你有没有在Linux命令行中见过一辆火车呢&#xff1f;"猫跟老鼠"呢&#xff1f;编辑Linux命令行其实并不总是件严肃古板的事情。你完全可以用它自娱自乐。下面我们就跟大家一起…

java web的友好页面_JavaWeb 之 由 Tomcat 展示友好的错误信息页面

在 JavaWeb 工程中&#xff0c;可能会遇到 404 或 500 的错误页面&#xff0c;也有可能是由于异常显示的空白页面&#xff0c;但是此时并不想把这些页面给用户呈现出来&#xff0c;这时就需要给用户提示一些友好的信息。在部署 JavaWeb 工程时&#xff0c;只需要在 web.xml 中指…

【计算机视觉】计算机视觉入门大全:基础概念、运行原理、应用案例详解

来源&#xff1a;图灵人工智能 「机器能够模拟人类视觉系统」的幻想已经过时了。自 1960 年代第一批学术论文出现以来&#xff0c;计算机视觉已经走了很远&#xff0c;现代系统已经出现&#xff0c;且它们可以集成到移动应用中。今天&#xff0c;由于其广泛应用和巨大潜力&…

PHP中对hmac_sha1签名算法的实现方法

最近研究网宿云文档API&#xff0c;其中用到了一种叫hmac_sha1的签名算法&#xff1b; HMAC-SHA1&#xff1a; HMAC是哈希运算消息认证码 (Hash-based Message Authentication Code)&#xff0c;HMAC运算利用哈希算法&#xff0c;以一个密钥和一个消息为输入&#xff0c;生成一…

对10亿个数据去重java_20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap...

有一道流传广泛的面试题&#xff1a;给你一台 4G 内存的机器&#xff0c;一组 20 亿个无序正整数&#xff0c;如何快速地判断一个正整数 N 是否在这组数字中&#xff1f;或者如何快速地对这组数据排重后排序&#xff1f;让我们先算算 20 亿个整数会占用多大的内存空间&#xff…

大佬共话AI:“三马二宏”等亮相2020年世界人工智能大会

&#xff08;视频来源&#xff1a;腾讯视频新民晚报&#xff09;来源 | 数据观综合&#xff08;转载请注明来源&#xff09;编辑 | 蒲蒲7月9日上午&#xff0c;2020世界人工智能大会云端峰会(WAIC)在上海正式开幕&#xff0c;人工智能概念又一次被行业点燃。大会上&#xff0c;…

浅谈Spring的AOP实现-代理机制

说起Spring的AOP(Aspect-Oriented Programming)面向切面编程大家都很熟悉&#xff08;Spring不是这次博文的重点&#xff09;&#xff0c;但是我先提出几个问题&#xff0c;看看同学们是否了解&#xff0c;如果了解的话可以不用继续往下读&#xff1a; 1. Spring的AOP的实现方式…

java读图片显示到前端_java从前端获取参数添加到图片后返回整张图片

java从前端获取参数添加到图片后返回整张图片以后为整个servlet代码&#xff0c;请自行加入到j2ee工程。import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.image.BufferedIma…

java远程调试挂起线程_java进程的远程调试

一、jdb调试mqbroker(jvm参数配置)2.利用jdb/idea/eclipse 远程调试&#xff0c;同本地调试一样二、jvisualvm jvm 监视使用jstatd连接nohup $JAVA_HOME/bin/jstatd -p 1099 -J-Djava.security.policy使用jmx连接(需配置jvm启动参数据)由于jvisualvm采器需要使用jmx&#xff0c…

简单图形打印(需求分解)

打印任意高度的实心菱形 菱形的打印是一个相对复杂的需求&#xff0c;我们需要把它分解成为多个简单的需求来完成。 将它看作是两个部分&#xff0c;上面一个三角形&#xff0c;下面一个倒三角形。 再依次实现打印。 代码如下&#xff1a; //打印任意高度的菱形 public class G…

机器人研究员的崛起 |《自然》论文

来源&#xff1a;Nature自然科研根据本周《自然》发表的一篇论文A mobile robotic chemist&#xff0c;汽车装配线上常见的机器人经过改造后&#xff0c;可以在化学实验室内和人类一起工作。该机器人和机器学习算法相连&#xff0c;能够在给定需要检验什么假设的情况下&#xf…

python 求最大值实例_Python 求数组局部最大值的实例

求数组局部最大值给定一个无重复元素的数组A[0…N-1]&#xff0c;求找到一个该数组的局部最大值。规定&#xff1a;在数组边界外的值无穷小。即&#xff1a;A[0]&#xff1e;A[-1]&#xff0c;A[N-1] &#xff1e;A[N]。显然&#xff0c;遍历一遍可以找到全局最大值&#xff0c…

Python+selenium第一个自动化脚本

第一个自动化脚本&#xff08;用Python写的&#xff09; from selenium import webdriver #从selenium导入webdriber driverwebdriber.Firefox() #打开Firefox软件 driver.get("http://baidu.com") #在Firefox的URL里输入百度&#xff0c;打开百度页面 driver.f…