Я хочу использовать Java, чтобы сделать программное обеспечение для редактирования TXT, как в Windows. Это включает в себя вкладку «Настройки шрифта». Я давно искал онлайн, но не смог его найти. Я был зол и написал сам. Я опубликую это здесь, чтобы поделиться этим. В следующий раз, когда я столкнусь с такой проблемой, мне не нужно писать код сам!
эксперимент с пакетом; импорт java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import javax.swing. Fontformat расширяет JDialog {private jlabel namelb; Частный Jlabel Stylelb; Частный Jlabel Sizelb; Частный Jlabel Preslb; Private Jtextfield Nametx; Private Jtextfield Styletx; Private Jtextfield Sizetx; Private Jtextfield Prestx; Частный JList Namelt; Частный JList Stylelt; Частный JList Sizelt; Частный JScrollpane JScrollPane1; Частный JScrollPane JScrollPane2; Частный JScrollpane JScrollPane3; Частный Jbutton утверждает; Частный Jbutton Cancel; Частный jbutton выбирать; Частный jradiobutton [] language = new jradiobutton [2]; Частный язык Buttongroup; Private String slanguage [] = {new String ("li tao"), new String ("abc")}; частный статический кадр JFRAME; Public Font Font, Newfont; // Class Class Private Color; // Цвет класса Color Newcolor; Частный jfilechooser filechoose = new jfilechooser (); // экземпляр класса файлов private jdialog colordlg; // color private jcolorchooser colorchoose = new jcolorchooser (); // Выбор цвета. // Этот класс также получает системные шрифты; Private String [] fontnameset; // Font 'Logical Name' Set // String Array шрифта «стиль» установить частную строку [] fontstyleSet = {«general», «tilt», «bold», «tilt bold»}; // Постоянный массив шрифта «стиль» установить частное целое число [] fontcon = {font.plain, font.italic, font.bold, font.bold | Font.italic}; // шрифт 'size' set Private String [] fontsisiseSet = {"6", "7", "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72"}; public static void main (String args []) {// Основная функция fontformat a = new fontformat (); a.setvisible (true); } public fontformat () {// Super Constructor Super (Frame, "Li Tao- frame = new jframe (); initGui (); } public fontformat (jframe frame) {// Параметр, содержащий конструктор Super (Frame, «Li Tao-Фондовое окно настройки», True); this.frame = frame; // Должен быть общедоступный объект шрифта в родительском окне // setalwaysontop (true); initGui (); } private void initgui () {// Инициализация интерфейса try {getContentPane (). setlayout (null); Environment = graphicsEnvironment.getLocalgraphicsEnvironment (); // GraphicsEnvironment - это абстрактный класс, который не может быть создан, и может использовать только статический метод, чтобы получить экземпляр Fontnameset = Environment.getavailablefontfamilyNames (); // get System Font AddMenu ();// add initfont (); setSize (380, 337); SetDefaultCloseoPeration (windowconstants.dispose_on_close); setWindowPos (); // Центр экрана окна setReSizable (false); // size immutable} catch (Exception e) {e.printstacktrace (); }} private void initfont () {// Инициализировать шрифт // Установите формат шрифта по умолчанию в формат шрифта, напротив шрифта родительского окна 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 = new Font (fontnameset [0], fontcon [0], 12); newFont = font; // Сохранить исходный формат шрифта prestx.setFont (font); // joptionpane.showmessageDialog (null, "ccac"); } else {int idxstyle = 0; for (int i = 0; i <fontcon.length; i ++) {if (fontcon [i] == frame.getfont (). getStyle ()) idxstyle = i; } nametx.settext (frame.getFont (). getName ()); // Изменение текста styletx.settext (fontstyleleset [idxstyle]); sizetx.settext ("" + frame.getFont (). getSize ()); namelt.setSelectedValue (frame.getFont (). getName (), true); // Изменение списка для отображения stylelt.setselectedIndex (idxstyle); sizelt.setselectedValue ("" + frame.getFont (). getSize (), true); font = new Font (fontnameset [0], fontcon [0], 12); // Сохранить текущий формат newfont = font; // Сохранить исходный формат шрифта prestx.setfont (font); // установлен в текущий режим в предварительном просмотре}} private void addmenu () {// add // 4 lables----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nameLb = new JLabel(); 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 ("size:"); 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 (). добавить (nametx); nametx.setbounds (10, 42, 120, 22); styletx = new jtextfield (); styletx.setedible (false); GetContentPane (). Add (Styletx); Styletx.SetBounds (151, 42, 100, 21); sizetx = new jtextfield (); sizetx.setedible (false); getContentPane (). Add (sizetx); sizetx.setbounds (275, 42, 79, 22); prestx = new jtextfield (); prestx.setediTable (false); getContentPane (). Add (prestx); prestx.setbounds (151, 200, 203, 61); prestx.settext (slanguage [1]); // 3 个下拉条-+监听 ----------------------------------------------------------------------------- JSCROLLPANE1 = NEW JSCROLLPANE (); 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. CreateTchedborder (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 fontsizemodel = new DefaultComboboboxmodel (fontsisiseSet); 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] .setbounds (271, 179, 40, 20); }); LanguageG.Add (язык [1]); --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {ApvoroeActionPerformed (EVT); }}); // Отмена кнопки Cancel = new jbutton (); getContentPane (). Добавить (отменить); Cancel.settext ("cancel"); 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 ("color"); Выберите. SetBounds (287, 265, 67, 20); выберите.setfont (new java.awt.font ("kaiti_gb2312", 1, 12)); выберите.addactionListener (new ActionListener () {public void actionPerformed (actionEvent evt) {choseactionperformed (evt);}}); // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (Scresisize.height - Framesize.height) / 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 (font); } private void styleLtmouseClicked (mouseevent evt) {// mouse щелкнуть string string temp = stylelt.getSelectedValue (). toString (); styletx.settext (temp); int index = 0; while (index <4 &&! fontstyleset [index] .equals (temp)) {index ++; } font = new Font (font.getName (), fontcon [index], font.getSize ()); prestx.setfont (font); } private void sizeltmouseclicked (mouseevent evt) {// mouse click event sizetx.settext (sizelt.getSelectedValue (). toString ()); font = new Font (font.getName (), font.getStyle (), integer.parseint (sizetx.getText ())); prestx.setfont (font); } private void ApprovoeActionPerformed (ActionEvent evt) {// Определить событие триггера name строки кнопки = nametx.getText (); int style = fontcon [stylelt.getSelectedIndex ()]; int size = integer.parseint (sizetx.getText ()); font = новый шрифт (имя, стиль, размер); Frame.setFont (Font); // объект шрифта родительского окна newfont = font; // Обновление исходного формата сохранения newcolor = color; // Обновить цвет this.dispose (); } private void CancelactionPerformed (ActionEvent evt) {// Слудание кнопки отмены кнопка this.dispose (); } private void chooseactionperformed (actionevent evt) {// Событие выбора цвета if (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.this, «Выберите цвет текста», True, ColorChoose, New ColorOkListener (), Null); } colorChoose.setColor (color = prestx.getforeground ()); colordlg.setvisible (true); } класс ColorOkListener реализует ActionListener {// Переписать кнопку «Цвет» Нажмите на интерфейс класса прослушивания ActionListener public void ActionPerformed (ActionEvent e) {color C = colorChoose.getColor (); цвет = c; prestx.setforeground (c); prestx.repaint (); }}} Эффекты следующие:
Я надеюсь, что эта статья будет вам полезна. Это все для вас, чтобы представить содержимое вкладки «Настройки шрифта Windows». Я надеюсь, что все будут продолжать следить за нашим сайтом! Если вы хотите выучить Java, вы можете продолжать следить за этим веб -сайтом.