ฉันต้องการใช้ Java เพื่อสร้างซอฟต์แวร์แก้ไข TXT เช่นใน Windows มันเกี่ยวข้องกับแท็บการตั้งค่าตัวอักษร ฉันค้นหาออนไลน์เป็นเวลานาน แต่หาไม่เจอ ฉันโกรธและเขียนด้วยตัวเอง ฉันจะโพสต์ที่นี่เพื่อแบ่งปัน ครั้งต่อไปที่ฉันพบปัญหาเช่นนี้ฉันไม่ต้องเขียนรหัสด้วยตัวเอง!
การทดลองแพ็คเกจ; นำเข้า java.awt.*; นำเข้า java.awt.event.actionEvent; นำเข้า java.awt.event.ActionListener; นำเข้า java.awt.event.mouseadapter; นำเข้า java.awt.event.mousevent; นำเข้า Javax.swing. กล่องโต้ตอบ*/คลาสสาธารณะ fontformat ขยาย jdialog {ส่วนตัว jlabel namelb; Jlabel Stylelb ส่วนตัว; ส่วนตัว Jlabel Sizelb; Jlabel Preslb ส่วนตัว; ส่วนตัว jtextfield nametx; ส่วนตัว Jtextfield Styletx; ส่วนตัว jtextfield sizetx; ส่วนตัว Jtextfield Prestx; Jlist ส่วนตัว Namelt; Jlist stylelt ส่วนตัว; Jlist ส่วนตัว Sizelt; JSCrollpane ส่วนตัว JSCrollPane1; JSCrollpane ส่วนตัว JSCrollPane2; JSCrollpane ส่วนตัว JSCrollPane3; JButton ส่วนตัวอนุมัติ; JButton ส่วนตัวยกเลิก; JButton ส่วนตัวเลือก; Jradiobutton ส่วนตัว [] ภาษา = ใหม่ Jradiobutton [2]; Buttonggroup LanguageG; Slanguage สตริงส่วนตัว [] = {สตริงใหม่ ("li tao"), สตริงใหม่ ("abc")}; เฟรม JFrame คงที่ส่วนตัว; ฟอนต์แบบอักษรสาธารณะ, newfont; // ตัวอักษรคลาสสีส่วนตัวสี; // color class color colorcolor; JFilechooser ส่วนตัว filechoose = ใหม่ jfilechooser (); // ไฟล์การเลือกไฟล์อินสแตนซ์ส่วนตัว jdialog colordlg; // กล่องโต้ตอบสีส่วนตัว jcolorchooser colorchoose = ใหม่ jcolorchooser (); // color selection คลาส // คลาสนี้ยังได้รับแบบอักษรของระบบ สตริงส่วนตัว [] fontnameset; // font 'ชื่อโลจิคัล' set // string array ของตัวอักษร 'สไตล์' ตั้งสตริงส่วนตัว [] fontstyleset = {"ทั่วไป", "tilt", "bold", "tilt bold"}; // อาร์เรย์คงที่ของตัวอักษร 'สไตล์' ตั้งค่าจำนวนเต็มส่วนตัว [] fontcon = {font.plain, font.italic, font.bold, font.bold | Font.italic}; // ตัวอักษร 'ขนาด' ตั้งค่าสตริงส่วนตัว [] fontsizeset = {"6", "7", "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48" โมฆะคงที่สาธารณะหลัก (สตริง args []) {// ฟังก์ชั่นหลัก fontformat a = new fontformat (); A.setVisible (จริง); } public fontformat () {// ตัวสร้างพารามิเตอร์ Super (เฟรม, "Li Tao - การตั้งค่าหน้าต่าง", จริง); frame = new JFrame (); initgui (); } fontformat สาธารณะ (เฟรม JFrame) {// ตัวสร้างพารามิเตอร์ที่มีส่วนประกอบ Super (เฟรม, "Li Tao-Font Window", TRUE); this.frame = frame; // จะต้องมีวัตถุแบบอักษรสาธารณะในหน้าต่างหลัก // setalwaysontop (จริง); initgui (); } โมฆะส่วนตัวเริ่มต้น () {// การเริ่มต้นอินเตอร์เฟสลอง {getContentPane (). setLayout (null); สิ่งแวดล้อม = graphicsenvironment.getLocalgraphicsenvironment (); // graphicsenvironment เป็นคลาสนามธรรมที่ไม่สามารถสร้างอินสแตนซ์และสามารถใช้วิธีการคงที่ในนั้นเพื่อรับอินสแตนซ์ fontnameset = environment.getAvailableFontFamilyNames () // setsize (380, 337); SetDefaultCloseoperation (WindowConstants.dispose_on_close); setWindowPos (); // ตรงกลางหน้าจอหน้าต่าง setResizable (false); // size immutable} catch (Exception e) {E.printStackTrace (); }} โมฆะส่วนตัว initFont () {// เริ่มต้นฟอนต์ // ตั้งค่ารูปแบบตัวอักษรเริ่มต้นเป็นรูปแบบตัวอักษรตรงข้ามตัวอักษรหน้าต่างแม่ถ้า (frame.getFont () == null) {nametx.settext (fontnameset [0]); styletx.settext (Fontstyleset [0]); sizetx.settext ("12"); namelt.setSelectedValue (fontnameset [0], true); Stylelt.setSelectedIndex (0); Sizelt.SetSelectedValue ("12", จริง); FONT = FONT ใหม่ (FONTNAMESET [0], FONTCON [0], 12); newFont = font; // บันทึกรูปแบบตัวอักษรดั้งเดิม prestx.setFont (ตัวอักษร); // joptionpane.showmessagedialog (null, "CCAC"); } else {int idxstyle = 0; สำหรับ (int i = 0; i <fontcon.length; i ++) {ถ้า (fontcon [i] == frame.getFont (). getStyle ()) idxstyle = i; } nametx.settext (frame.getfont (). getName ()); // เปลี่ยน text styletx.settext (FontStyleset [idxstyle]); sizetx.settext ("" + frame.getFont (). getSize ()); namelt.setSelectedValue (frame.getFont (). getName (), จริง); // เปลี่ยนรายการเพื่อแสดง stylelt.setSelectedIndex (idxstyle); sizelt.setSelectedValue ("" + frame.getFont (). getSize (), true); FONT = FONT ใหม่ (FONTNAMESET [0], FONTCON [0], 12); // บันทึกรูปแบบปัจจุบัน newFont = font; // บันทึกรูปแบบตัวอักษรดั้งเดิม prestx.setFont (แบบอักษร); // ตั้งค่าเป็นโหมดปัจจุบัน lables -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- getContentPane (). เพิ่ม (namelb); namelb.settext ("ตัวอักษร:"); namelb.setbounds (10, 14, 120, 26); namelb.setfont (java.awt.font ใหม่ ("Simsun", 1, 14)); stylelb = new jlabel (); getContentPane (). เพิ่ม (Stylelb); stylelb.settext ("ตัวอักษร:"); Stylelb.setbounds (151, 14, 120, 23); stylelb.setfont (java.awt.font ใหม่ ("Simsun", 1, 14)); sizelb = new jlabel (); getContentPane (). เพิ่ม (sizelb); sizelb.settext ("ขนาด:"); sizelb.setbounds (275, 14, 79, 24); sizelb.setfont (java.awt.font ใหม่ ("Simsun", 1, 14)); preslb = new jlabel (); getContentPane (). เพิ่ม (preslb); preslb.settext ("ดูตัวอย่าง:"); preslb.setbounds (151, 150, 120, 80); preslb.setfont (ใหม่ java.awt.font ("Simsun", 1, 14)); // 4 个 textfield --------------------------------------------------------------------- nametx = new Jtextfield (); nametx.setEditable (เท็จ); getContentPane (). เพิ่ม (NAMETX); nametx.setbounds (10, 42, 120, 22); styletx = new jtextfield (); Styletx.setEditable (เท็จ); getContentPane (). เพิ่ม (styletx); Styletx.setbounds (151, 42, 100, 21); sizetx = new jtextfield (); sizetx.seteditable (เท็จ); getContentPane (). เพิ่ม (SIZETX); sizetx.setbounds (275, 42, 79, 22); prestx = new jtextfield (); prestx.seteditable (เท็จ); getContentPane (). เพิ่ม (prestx); Prestx.SetBounds (151, 200, 203, 61); prestx.settext (Slanguage [1]); // 3 个下拉条-+监听 --------------------------------------------------------------------- JScrollpane1 = JSCrollPane ใหม่ (); getContentPane (). เพิ่ม (JSCrollPane1); JScrollpane1.SetBounds (10, 74, 120, 210); {ListModel FontNameModel = ใหม่ defaultcomboBoxModel (fontNameset); namelt = new jlist (); JSCrollPane1.SetViewPortView (NAMELT); namelt.setModel (fontnamemodel); Namelt.Setbounds (274, 193, 90, 86); Namelt.SetBorder (BorderFactory .CreateetChedBorder (bevelBorder.lowered)); namelt.addmouselistener (ใหม่ mouseadapter () {โมฆะสาธารณะ mouseclicked (MouseEvent eVt) {nameltmouseclicked (evt);}}); } jscrollpane2 = new JScrollpane (); getContentPane (). เพิ่ม (JSCrollPane2); JSCrollPane2.SetBounds (151, 74, 100, 103); {ListModel FontStyleModel = ใหม่ defaultComBoBOXMODEL (FontStyleset); stylelt = new jlist (); JSCrollPane2.SetViewPortView (Stylelt); Stylelt.SetModel (Fontstylemodel); Stylelt.SetBounds (310, 215, 70, 102); Stylelt.SetBorder (BorderFactory .CreateetChedBorder (bevelBorder.lowered)); stylelt.addmouselistener (ใหม่ mouseadapter () {โมฆะสาธารณะ mouseclicked (MouseEvent EVT) {Styleltmouseclicked (EVT);}}); } jscrollpane3 = ใหม่ jscrollpane (); getContentPane (). เพิ่ม (JSCrollPane3); jscrollpane3.setbounds (275, 75, 79, 100); {ListModel FontSizeModel = ใหม่ defaultComBoBoxModel (FontSizeset); sizelt = new jlist (); jscrollpane3.SetViewPortView (Sizelt); Sizelt.SetModel (FontsizeModel); Sizelt.SetBounds (300, 218, 54, 102); Sizelt.SetBorder (BorderFactory .CreateetChedBorder (bevelBorder.lowered)); sizelt.addmouselistener (ใหม่ mouseadapter () {โมฆะสาธารณะ mouseclicked (MouseEvent EVT) {Sizeltmouseclicked (EVT);}}); } // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ภาษา [0] .setbounds (271, 179, 40, 20); prestx.settext (Slanguage [0]); java.awt.font ("Simsun", 1, 12)); - - {approveactionperformed (EVT); - // ยกเลิกปุ่มยกเลิก = new JButton (); getContentPane (). เพิ่ม (ยกเลิก); cancel.settext ("ยกเลิก"); Cancel.setBounds (219, 265, 67, 20); cancel.setFont (ใหม่ java.awt.font ("kaiti_gb2312", 1, 12)); cancel.addactionListener (ใหม่ actionListener () {โมฆะสาธารณะ ActionPerformed (ActionEvent EVT) {CancElactionPerformed (EVT);}}); // ปุ่มเลือกสีเลือก = new JButton (); getContentPane (). เพิ่ม (เลือก); เลือก. settext ("สี"); เลือก SetBounds (287, 265, 67, 20); เลือก. setFont (ใหม่ java.awt.font ("kaiti_gb2312", 1, 12)); เลือก AddactionListener (ใหม่ actionListener () {โมฆะสาธารณะ actionperformed (actionEvent eVt) {choseactionperformed (evt);}}); // - - (screensize.height - frameize.height) / 2); } โมฆะส่วนตัว nameltmouseclicked (MouseEvent eVt) {// เมาส์คลิกเหตุการณ์ nametx.settext (namelt.getSelectedValue (). toString ()); FONT = FONT ใหม่ (nametx.getText (), font.getStyle (), font.getSize ()); prestx.setfont (แบบอักษร); } โมฆะส่วนตัว styleltmouseClicked (MouseEvent eVt) {// เมาส์คลิกที่สตริงเหตุการณ์อุณหภูมิ = stylelt.getSelectedValue (). toString (); styletx.settext (อุณหภูมิ); ดัชนี int = 0; ในขณะที่ (ดัชนี <4 &&! fontstyleset [index] .equals (temp)) {index ++; } font = font ใหม่ (font.getName (), fontcon [index], font.getSize ()); prestx.setfont (แบบอักษร); } โมฆะส่วนตัว sizeltmouseclicked (MouseEvent eVt) {// เมาส์คลิกเหตุการณ์ sizetx.settext (sizelt.getSelectedValue (). toString ()); font = font ใหม่ (font.getName (), font.getStyle (), integer.parseint (sizetx.getText ())); prestx.setfont (แบบอักษร); } โมฆะส่วนตัว approveactionperformed (ActionEvent EVT) {// กำหนดเหตุการณ์ทริกเกอร์ของชื่อสตริงปุ่ม = nametx.getText (); Int Style = FontCon [stylelt.getSelectedIndex ()]; ขนาด int = integer.parseint (sizetx.getText ()); FONT = FONT ใหม่ (ชื่อ, สไตล์, ขนาด); frame.setFont (แบบอักษร); // วัตถุฟอนต์ของหน้าต่างพาเรนต์ newfont = font; // อัปเดตรูปแบบบันทึกต้นฉบับ newColor = color; // อัปเดตสี this.dispose (); } โมฆะส่วนตัว CancelactionPerformed (ActionEvent EVT) {// ยกเลิกปุ่มทริกเกอร์เหตุการณ์นี้ dispose (); } โมฆะส่วนตัว ChooseActionPerformed (ActionEvent EVT) {// การเลือกสีกิจกรรมทริกเกอร์ถ้า (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.Shis, "เลือกสีข้อความ", true, colorchoose, coloroklistener ใหม่ (); null); } colorchoose.setColor (color = prestx.getforeground ()); colordlg.setVisible (จริง); } คลาส ColorokListener ใช้ ActionListener {// เขียนปุ่มสีอีกครั้งคลิกที่คลาสการฟังอินเทอร์เฟซการถ่ายทอดแอ็คชั่นแอ็คชั่น public void actionperformed (actionEvent e) {color c = colorchoose.getColor (); สี = c; prestx.setforeground (c); prestx.repaint (); - ผลกระทบมีดังนี้:
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับคุณ นี่คือทั้งหมดที่คุณจะแนะนำเนื้อหาของแท็บการตั้งค่า Font Windows ของ Java เลียนแบบ ฉันหวังว่าทุกคนจะติดตามเว็บไซต์ของเราต่อไป! หากคุณต้องการเรียนรู้ Java คุณสามารถติดตามเว็บไซต์นี้ต่อไปได้