Saya ingin menggunakan java untuk membuat perangkat lunak pengeditan txt seperti di windows. Ini melibatkan tab Pengaturan Font. Saya mencari secara online untuk waktu yang lama tetapi tidak dapat menemukannya. Saya marah dan menulisnya sendiri. Saya akan mempostingnya di sini untuk membagikannya. Lain kali saya mengalami masalah seperti itu, saya tidak perlu menulis kode sendiri!
Paket Eksperimen; Impor Java.awt.*; impor java.awt.event.actionevent; impor java.awt.event.actionlistener; impor java.awt.event.mouseadapter; impor java.awt.event.mouseevent; impor javax.swing.*Impor javax.swing kelas fontformat memperluas jDialog {private jlabel namelb; Private Jlabel Stylelb; Private Jlabel Sizelb; Private Jlabel Preslb; Private JTextfield NAMETX; Private JTextfield Styletx; Private JTextfield Sizetx; prestx jtextfield pribadi; JLIST NAMELT; Private JList Stylelt; jlist pribadi sizelt; jscrollpane pribadi jscrollpane1; private jscrollpane jscrollpane2; jscrollpane pribadi jscrollpane3; Private Jbutton menyetujui; Private Jbutton membatalkan; Private Jbutton pilih; Private Jradiobutton [] bahasa = Jradiobutton baru [2]; bahasa buttongroup pribadi; Private String Slanguage [] = {new string ("li tao"), string baru ("abc")}; bingkai jframe statis pribadi; font font publik, newfont; // font class warna pribadi warna; // warna kelas warna newcolor; pribadi jfilechooser filechoose = jfilechooser baru (); // contoh kelas pemilihan file private jdialog colordlg; // dialog warna pribadi jcolorchooser colorchoose = jcolorchooser baru (); // color class class private graphicsenviron lingkungan; // Kelas ini juga memperoleh font sistem; private string [] fontNameset; // font 'nama logis' set // string array font 'style' set private string [] fontstyleset = {"umum", "tilt", "bold", "tilt bold"}; // array konstan font 'style' atur private integer [] fontCon = {font.plain, font.italic, font.bold, font.bold | Font.italic}; // font 'size' set private string [] fontsizeset = {"6", "7", "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72"}; public static void main (string args []) {// Main Function fontFormat a = new fontFormat (); a.setVisible (true); } public fontFormat () {// Konstruktor Parameterless Super (Frame, "Li Tao ―font Pengaturan Jendela", true); bingkai = jframe baru (); initgui (); } public fontFormat (bingkai jFrame) {// Konstruktor yang mengandung parameter super (frame, "Li tao-jendela pengaturan font", true); this.frame = frame; // Harus ada objek font publik di jendela induk // setalwaysontop (true); initgui (); } private void initGUI () {// Inisialisasi antarmuka coba {getContentPane (). setLayout (null); lingkungan = graphicsEnvironment.getLocalGraphicsEnvironment (); // graphicsenvironment adalah kelas abstrak yang tidak dapat dipakai, dan hanya dapat menggunakan metode statis di dalamnya untuk mendapatkan instance fontNameset = lingkungan. setsize (380, 337); setDefaultCloseOperation (windowConsants.dispose_on_close); setWindowPos (); // Center The Window Screen setResizable (false); // size Immutable} catch (Exception e) {e.printstacktrace (); }} private void initfont () {// menginisialisasi font // atur format font default ke format font di seberang font jendela induk if (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", true); font = font baru (fontNameset [0], fontCon [0], 12); newfont = font; // simpan format font asli prestx.setfont (font); // joptionpane.showmessagedialog (null, "ccac"); } else {int idxstyle = 0; untuk (int i = 0; i <fontcon.length; i ++) {if (fontCon [i] == frame.getFont (). getStyle ()) idxstyle = i; } nametx.setText (frame.getFont (). getName ()); // ubah teks styletx.settext (fontStyleset [idxstyle]); sizetx.setText ("" + frame.getFont (). getSize ()); namelt.setselectedValue (frame.getFont (). getName (), true); // ubah daftar untuk menampilkan stylelt.setselectedIndex (idxstyle); sizelt.setselectedValue ("" + frame.getFont (). getSize (), true); font = font baru (fontNameset [0], fontCon [0], 12); // Simpan format saat ini newfont = font; // simpan format font asli prestx.setfont (font); // atur ke menu saat ini dalam pratinjau}} private void addMenu () {// Tambahkan ke menu // lables----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nameLb = new JLabel(); getContentPane (). Add (namelb); namelb.setText ("font:"); namelb.setbounds (10, 14, 120, 26); namelb.setfont (java.awt.font baru ("simsun", 1, 14)); stylelb = new jlabel (); getContentPane (). Add (stylelb); stylelb.setText ("font:"); stylelb.setbounds (151, 14, 120, 23); stylelb.setfont (java.awt.font baru ("simsun", 1, 14)); sizelb = jlabel baru (); getContentPane (). Add (Sizelb); sizelb.setText ("size:"); Sizelb.setbounds (275, 14, 79, 24); sizelb.setfont (java.awt.font baru ("simsun", 1, 14)); preslb = new jlabel (); getContentPane (). Add (preslb); preslb.setText ("Pratinjau:"); preslb.setbounds (151, 150, 120, 80); preslb.setfont (java.awt.font baru ("simsun", 1, 14)); // 4 个 Textfield ----------------------------------------------------------------------------- NAMETX = JTextField baru (); nametx.seteditable (false); getContentPane (). Add (nametx); nametx.setbounds (10, 42, 120, 22); styletx = new jTextField (); styletx.seteditable (false); getContentPane (). Add (styletx); styletx.setbounds (151, 42, 100, 21); sizetx = jTextField baru (); sizetx.seteditable (false); getContentPane (). Add (Sizetx); sizetx.setbounds (275, 42, 79, 22); prestx = jTextField baru (); prestx.seteditable (false); getContentPane (). Add (prestx); prestx.setbounds (151, 200, 203, 61); prestx.setText (Slanguage [1]); // 3 个下拉条-+监听 ------------------------------------------------------------------------- JSCrollPane1 = JSCrollPane baru (); getContentPane (). Tambah (jscrollpane1); jscrollpane1.setbounds (10, 74, 120, 210); {ListModel fontnamemodel = New DefaultComboBoxModel (fontNameset); namelt = jList baru (); jscrollpane1.setViewPortView (namelt); namelt.setModel (fontnamemodel); namelt.setbounds (274, 193, 90, 86); namelt.setborder (borderfactory .createTeetchedborder (bevelborder.lowered)); namelt.addmouseListener (mouseadapter baru () {public void mouseclicked (mouseEvent evt) {nameltmouseClicked (evt);}}); } jscrollpane2 = jscrollpane baru (); getContentPane (). Tambah (jscrollpane2); jscrollpane2.setbounds (151, 74, 100, 103); {ListModel fontstylemodel = New DefaultComboBoxModel (fontStyleset); stylelt = jList baru (); jscrollpane2.setViewPortView (stylelt); stylelt.setModel (fontstylemodel); stylelt.setbounds (310, 215, 70, 102); stylelt.setborder (borderfactory .createTeetchedborder (bevelborder.lowered)); stylelt.addmouseListener (mouseadapter baru () {public void mouseclicked (mouseEvent evt) {styleltmouseClicked (evt);}}); } jscrollpane3 = jscrollpane baru (); getContentPane (). Tambah (jscrollpane3); jscrollpane3.setbounds (275, 75, 79, 100); {ListModel fontSizeModel = New DefaultComboBoxModel (fontSizeset); sizelt = jList baru (); jscrollpane3.setViewPortView (Sizelt); sizelt.setModel (fontsizemodel); sizelt.setbounds (300, 218, 54, 102); sizelt.setborder (borderfactory .createetchedborder (bevelborder.lowered)); sizelt.addmouseListener (mouseadapter baru () {public void mouseclicked (mouseEvent evt) {sizeltmouseClicked (evt);}}); } // -------------------------------------------------------------------------------------- // 中英选项 (----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- bahasa [0] .setbounds (271, 179, 40, 20); }}); language.add (bahasa [1]); ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {AcproveActionPerformed (EVT); }}); // Batal tombol Batal = JBUTTON baru (); getContentPane (). Tambah (Batal); cancel.setText ("Batal"); Batal.setbounds (219, 265, 67, 20); cancel.setfont (java.awt.font baru ("KAITI_GB2312", 1, 12)); cancel.addactionListener (actionListener () {public void actionPerformed (actionEvent evt) {cancelactionPerformed (evt);}}); // tombol pemilihan warna pilih = jbutton baru (); getContentPane (). Tambah (pilih); pilih .SetText ("Color"); pilih.setbounds (287, 265, 67, 20); pilih.setFont (java.awt.font baru ("KAITI_GB2312", 1, 12)); pilih.addactionListener (actionListener () {public void actionPerformed (actionEvent evt) {choseactionPerformed (evt);}}); // ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ (screensize.height - framesize.height) / 2); } private void nameltmouseClicked (mouseEvent evt) {// mouse klik event nametx.settext (namelt.getSelectedValue (). toString ()); font = font baru (nametx.getText (), font.getstyle (), font.getsize ()); prestx.setfont (font); } private void styleltmouseClicked (mouseEvent evt) {// mouse klik event string temp = stylelt.getSelectedValue (). toString (); styletx.setText (temp); INT INDEX = 0; while (index <4 &&! FontStyleset [index] .equals (temp)) {index ++; } font = font baru (font.getName (), fontCon [index], font.getsize ()); prestx.setfont (font); } private void sizeltmouseClicked (mouseEvent evt) {// mouse klik acara sizetx.settext (sizelt.getselectedValue (). tostring ()); font = font baru (font.getName (), font.getStyle (), integer.parseint (sizetx.gettext ())); prestx.setfont (font); } private void approveActionPerformed (ActionEvent evt) {// Tentukan peristiwa pemicu nama string tombol = nametx.getText (); int style = fontCon [stylelt.getSelectedIndex ()]; int size = integer.parseint (sizetx.getText ()); font = font baru (nama, gaya, ukuran); frame.setfont (font); // objek font dari jendela induk newfont = font; // perbarui format simpan asli newcolor = color; // perbarui warna this.dispose (); } private void cancelactionPerformed (ActionEvent evt) {// Batal tombol pemicu tombol this.dispose (); } private void chooseActionPerformed (actionEvent evt) {// acara pemicu pemicu warna if (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.ini, "ini Pilih Teks", true, colorchoose, new coloroklistener (), null); } colorChoose.setColor (color = prestx.getForeGround ()); colordlg.setVisible (true); } class coloroklistener mengimplementasikan ActionListener {// Tulis ulang tombol warna klik antarmuka overlay kelas pendengaran ActionListener public void actionPerformed (actionEvent e) {color c = colorchoose.getColor (); warna = c; prestx.setForeground (c); prestx.repaint (); }}} Efeknya adalah sebagai berikut:
Saya harap artikel ini akan membantu Anda. Ini semua bagi Anda untuk memperkenalkan isi tab Pengaturan Font Windows Java Imitation. Saya harap semua orang akan terus mengikuti situs web kami! Jika Anda ingin belajar Java, Anda dapat terus mengikuti situs web ini.