أرغب في استخدام Java لإنشاء برنامج تحرير TXT كما في Windows. أنها تنطوي على علامة التبويب إعداد الخط. لقد بحثت عبر الإنترنت لفترة طويلة ولكن لم أتمكن من العثور عليها. كنت غاضبًا وكتبت بنفسي. سأقوم بنشرها هنا لمشاركتها. في المرة القادمة أواجه مثل هذه المشكلة ، لست مضطرًا لكتابة الرمز بنفسي!
حزمة تجربة ؛ استيراد java.awt.*؛ استيراد java.awt.event.actionevent ؛ استيراد java.awt.event.actionlistener ؛ استيراد java.awt.event.mouseadapter Fontformat يمتد jdialog {private jlabel namelb ؛ خاص Jlabel Stylelb ؛ خاص Jlabel Sizelb ؛ خاص Jlabel preslb ؛ خاص Jtextfield Nametx ؛ خاص jtextfield styletx ؛ خاص JTextfield Sizetx ؛ خاص Jtextfield Prestx ؛ Private Jlist Namelt ؛ jlist stylelt الخاص ؛ خاص Jlist Sizelt ؛ Private JScrollpane JScrollPane1 ؛ الخاص jscrollpane jscrollpane2 ؛ الخاص jscrollpane jscrollpane3 ؛ الموافقة الخاصة Jbutton الخاصة ؛ Private Jbutton إلغاء ؛ اختيار jbutton الخاص ؛ Private Jradiobutton [] لغة = New Jradiobutton [2] ؛ buttongroup الخاص لغة ؛ سلسلة خاصة slanguage [] = {new string ("li tao") ، سلسلة جديدة ("ABC")} ؛ إطار JFRAME الثابت الخاص ؛ Font Font Font ، Newfont ؛ // font Class Color Private Color ؛ // Color Class Color NewColor ؛ Private JfileChooser FileChoose = New JfileChooser () ؛ // Class Class مثيل JDialog Colordlg ؛ // Dialog Color Private JColorChooser ColorChoose = New JColorchooser () // هذه الفئة تحصل أيضًا على خطوط النظام ؛ سلسلة خاصة [] fontnameset ؛ // font 'name name' set // string array of font 'style' set private string [] fontstyleSet = {"General" ، "Tilt" ، "Bold" ، "Tilt Bold"} ؛ // صفيف ثابت من الخط "نمط" تعيين عدد صحيح خاص [] fontcon = {font.plain ، font.italic ، font.bold ، font.bold | font.italic} ؛ // font 'size' set private string [] fontsipeset = {"6" ، "7" ، "8" ، "9" ، "10" ، "11" ، "12" ، "14" ، "16" ، "18" ، "20" ، 22 "،" 24 "،" 26 "،" 26 "،" 48 "،" 72 "} ؛ الفراغ الثابت العام (سلسلة args []) {// الدالة الرئيسية fontformat a = new fontformat () ؛ A.SetVisible (صحيح) ؛ } public fontformat () {// The Parameterless Constructor Super (Frame ، "Li Tao - Font Setting Window" ، true) ؛ الإطار = new JFrame () ؛ initgui () ؛ } fontformat العامة (إطار JFrame) {// مُنشئ يحتوي على المعلمة Super (Frame ، "Li Tao-Font Setting Window" ، True) ؛ هذا. initgui () ؛ } private void initgui () {// interface intercalization try {getContentPane (). setLayout (null) ؛ البيئة = GraphicsEnvironment.GetLocalGarphicsEnvironment () ؛ // GraphicsEnvironment هي فئة مجردة لا يمكن إنشاء مثيل لها ، ولا يمكنها سوى استخدام الطريقة الثابتة في ذلك للحصول على مثيل fontnameset = evential.getavailableableablenames () ؛ // الحصول على نظام addmenu () ؛ SetSize (380 ، 337) ؛ setDefaultCloseOperation (WindowConstants.dispose_on_close) ؛ SetWindowpos () ؛ // Center SetResible SetResible (false) ؛ // size immutable} catch (استثناء e) {E.PrintStackTrace () ؛ }} private void 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 = new font (fontnameset [0] ، fontcon [0] ، 12) ؛ newfont = font ؛ // حفظ تنسيق الخط الأصلي prestx.setfont (الخط) ؛ // joptionpane.showmessagedialog (null ، "ccac") ؛ } آخر {int idxStyle = 0 ؛ لـ (int i = 0 ؛ i <fontcon.length ؛ i ++) {if (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 () ، true) ؛ // قائمة التغيير لعرض stylelt.setselectistindex (idxstyle) ؛ sizelt.SetSelectedValue ("" + frame.getfont (). getSize () ، true) ؛ font = new font (fontnameset [0] ، fontcon [0] ، 12) ؛ // احفظ التنسيق الحالي newfont = font ؛ // احفظ تنسيق الخط الأصلي prestx.setfont (font) ؛ Lables ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ getContentPane (). add (namelb) ؛ namelb.settext ("font:") ؛ Namelb.setBounds (10 ، 14 ، 120 ، 26) ؛ namelb.setfont (New Java.awt.font ("Simsun" ، 1 ، 14)) ؛ Stylelb = new Jlabel () ؛ getContentPane (). add (stylelb) ؛ Stylelb.settext ("font:") ؛ Stylelb.setBounds (151 ، 14 ، 120 ، 23) ؛ Stylelb.setfont (New Java.awt.font ("Simsun" ، 1 ، 14)) ؛ Sizelb = New Jlabel () ؛ getContentPane (). add (sizelb) ؛ Sizelb.settext ("الحجم:") ؛ Sizelb.setBounds (275 ، 14 ، 79 ، 24) ؛ Sizelb.setfont (New Java.awt.font ("Simsun" ، 1 ، 14)) ؛ preslb = new Jlabel () ؛ getContentPane (). add (preslb) ؛ preslb.settext ("معاينة:") ؛ Preslb.SetBounds (151 ، 150 ، 120 ، 80) ؛ Preslb.setfont (New Java.awt.font ("Simsun" ، 1 ، 14)) ؛ // 4 个 textfield --------------------------------------------------------------------------------------- NAMETX = New JTextfield () ؛ nametx.setedable (false) ؛ getContentPane (). add (nametx) ؛ nametx.setBounds (10 ، 42 ، 120 ، 22) ؛ styletx = new JTextField () ؛ styletx.setedable (false) ؛ getContentPane (). add (styletx) ؛ styletx.setBounds (151 ، 42 ، 100 ، 21) ؛ sizetx = new jtextfield () ؛ sizetx.setedable (false) ؛ getContentPane (). add (sizetx) ؛ Sizetx.setBounds (275 ، 42 ، 79 ، 22) ؛ prestx = new JTextField () ؛ prestx.setedable (false) ؛ getContentPane (). add (prestx) ؛ PrestX.SetBounds (151 ، 200 ، 203 ، 61) ؛ prestx.settext (slanguage [1]) ؛ . getContentPane (). add (jscrollpane1) ؛ jscrollpane1.setBounds (10 ، 74 ، 120 ، 210) ؛ {listmodel fontnamemodel = new 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 (new mouseadapter () {public void mouseclicked (mouseevent evt) {nameltmouseclicked (evt) ؛}}) ؛ } jscrollpane2 = new jscrollpane () ؛ getContentPane (). add (jscrollpane2) ؛ jscrollpane2.setBounds (151 ، 74 ، 100 ، 103) ؛ {listmodel fontstyleModel = new 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 (new mouseadapter () {public void mouseclicked (mouseevent evt) {styleltmouseclicked (evt) ؛}}) ؛ } jscrollpane3 = new jscrollpane () ؛ getContentPane (). add (jscrollpane3) ؛ jscrollpane3.setBounds (275 ، 75 ، 79 ، 100) ؛ {listmodel fontsizeSemodel = new 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 (new mouseadapter () {public void mouseclicked (mouseevent evt) {sizeltmouseclicked (evt) ؛}}) ؛ } // --------------------------------------------------------------------------------------- // 中英选项 (---------------------------------------------------------------------------------------------- اللغة [0]. }) ؛ languageg.add (Language [1]) ؛ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {encluctionPerformed (evt) ؛ }}) ؛ // cancel button cancel = new JButton () ؛ getContentPane (). إضافة (إلغاء) ؛ cancel.settext ("إلغاء") ؛ Cancel.setBounds (219 ، 265 ، 67 ، 20) ؛ Cancel.setFont (New Java.awt.font ("Kaiti_GB2312" ، 1 ، 12)) ؛ cancel.addActionListener (new ActionListener () {public void actionperformed (ActionEvent evt) {cancelActionPerformed (evt) ؛}}) ؛ // زر اختيار اللون اختر = New JButton () ؛ getContentPane (). إضافة (اختار) ؛ اختر .Settext ("اللون") ؛ اختيار. اختر. choice.addActionListener (new ActionListener () {public void actionperformed (actionevent evt) {choseactionperformed (evt) ؛}}) ؛ // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ (suckensize.hight - frameize.hight) / 2) ؛ } private void nameltmouseclicked (mouseevent evt) {// mouse click event nametx.settext (namelt.getSelectedValue (). toString ()) ؛ font = new font (nametx.getText () ، font.getStyle () ، font.getSize ()) ؛ prestx.setfont (الخط) ؛ } private void styleltmouseclicked (mouseevent evt) {// mouse click string temp = stylelt.getSelectedValue (). toString () ؛ styletx.settext (temp) ؛ int index = 0 ؛ بينما (الفهرس <4 &&! fontstyleset [index] .equals (temp)) {index ++ ؛ } font = new font (font.getName () ، fontcon [index] ، font.getSize ()) ؛ prestx.setfont (الخط) ؛ } private void sizeltmouseClicked (mouseevent evt) {// mouse click spect sizetx.settext (sizelt.getSelectedValue (). toString ()) ؛ font = new font (font.getName () ، font.getStyle () ، integer.parseint (sizetx.getText ())) ؛ prestx.setfont (الخط) ؛ } private void asproveactionperformed (ActionEvent evt) {// حدد حدث الزناد لاسم سلسلة الزر = nametx.getText () ؛ int style = fontcon [stylelt.getSelectedIndex ()] ؛ int size = integer.parseint (sizetx.getText ()) ؛ الخط = الخط الجديد (الاسم ، النمط ، الحجم) ؛ frame.setfont (الخط) ؛ // كائن الخط في النافذة الأصل newfont = font ؛ // تحديث تنسيق حفظ الأصلي newColor = color ؛ // تحديث اللون this.dispose () ؛ } private void cancelActionPerformed (ActionEvent evt) {// cancel button trigger event this.dispose () ؛ } private void chooseActionPerformed (Actionevent evt) {// Color Colution Trigger event if (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.this ، "select text color" ، true ، colorchoose ، new colonoklistener () ، null) ؛ } colorChoose.setColor (color = prestx.getForeGround ()) ؛ colordlg.setVisible (صواب) ؛ } class colorokListener تنفذ ActionListener {// إعادة كتابة زر اللون انقر فوق واجهة الاستماع إلى واجهة ActionListener public actionperformed (ActionEvent e) {color c = colorchoose.getColor () ؛ اللون = ج ؛ prestx.setforeground (c) ؛ prestx.repaint () ؛ }}} الآثار هي كما يلي:
آمل أن يكون هذا المقال مفيدًا لك. هذا كل شيء بالنسبة لك لتقديم محتويات علامة التبويب "إعدادات خطوط Windows" Java. آمل أن يستمر الجميع في متابعة موقعنا! إذا كنت ترغب في تعلم Java ، فيمكنك متابعة متابعة هذا الموقع.