Je souhaite utiliser Java pour créer un logiciel d'édition TXT comme dans Windows. Il implique l'onglet Réglage de la police. J'ai cherché en ligne pendant longtemps mais je n'ai pas pu le trouver. J'étais en colère et j'en ai écrit un moi-même. Je le posterai ici pour le partager. La prochaine fois que je rencontrerai un tel problème, je n'ai pas à écrire le code moi-même!
Expérience de package; Import Java.awt. *; Importer java.awt.event.actionEvent; import java.awt.event.actionListener; import java.awt.event.mousadapter; import java.awt.event.mouseevent; importer javax.swing. *; Importer javax.swing.border.Bevelborder; / ** * Fontrowerding * / Public Class Fontformat étend JDialog {private jLabel namelb; JLABEL privé Stylelb; Jlabel SIZELB privé; Private JLabel Preslb; JEXTFIELD PRIVÉ NAMETX; Jtexfield privé Styletx; Jtexfield privé Sizetx; Jtexfield privé Prestx; JLIST PRIVÉE NAMELT; JLIST PRIVÉ STYLELT; JLIST PRIVÉE SIZELT; JSCROLLPANE privé JSCrollPane1; JSCROLLPANE JSCROLLPANE2 privé; JSCROLLPANE privé JSCrollPane3; Le soldat Jbutton approuve; JBUTTON PRIVÉ Annuler; JBUTTON privé Choisissez; privé jradiobutton [] langue = new Jradiobutton [2]; Buttongroup privé LanguageG; SLANCANAGE PRIVÉE [] = {new String ("Li Tao"), new String ("ABC")}; cadre JFrame statique privé; Font de police publique, newFont; // Classe de police couleur privilt couleur; // Couleur Classe Color NewColor; JFileChoOSer privé FileChoose = new JFileChoOser (); // Classe de sélection de fichiers instance JDialog Colordlg; // Dialogue Color JcolorChoOSer ColorChoose = New JColorChoOser (); // Clour Sélection Classe Instance privée GraphicSenvironment Environnement; // Cette classe obtient également des polices système; String privé [] FontNameSet; // Font 'Logical Name' set // String Array of Font 'Style' Set Private String [] FontStyleSet = {"General", "Tilt", "Bold", "Tilt Bold"}; // Tableau constant de Font 'Style' Set entier privé [] 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 []) {// fonction principale Fontformat a = new FontFormat (); A.SetVisible (true); } public Fontformat () {// Le constructeur sans paramètre super (trame, "Li Tao --Font Setting Window", true); frame = new JFrame (); initgui (); } public Fontformat (JFrame Frame) {// Le constructeur contenant des paramètres Super (trame, "Li Tao - Font Setting Window", true); this.frame = frame; // il doit y avoir un objet de police public dans la fenêtre parent // setalwaySontop (true); initgui (); } private void initgui () {// INTERFACE INITINATIZINE try {getContentPane (). setLayout (null); environnement = graphicsenvironment.getLocalgraphicsSenvironment (); // GraphicsSenvironment est une classe abstraite qui ne peut pas être instanciée, et ne peut utiliser la méthode statique que pour obtenir une instance FontNameSet = Environment.getAcailableFontFamilyNames (); // Get System Pont AddMenu (); // Add Menu Initfont (); //Initialize Font / Pack ();); setSize (380, 337); setDefaultCloseOperation (WindowConstants.dispose_on_close); setWindowPos (); // centrer l'écran de fenêtre setReSizable (false); // size immuable} catch (exception e) {e.printStackTrace (); }} private void initfont () {// Initialisez le format de police de police // par défaut sur le format de police opposé à la fenêtre parent Font 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 = NOUVEAU FONT (FONTNAMEET [0], FONTCON [0], 12); newFont = font; // Enregistrer le format de police d'origine prestx.setfont (FONT); // joptionpane.showMessageDialog (null, "CCAC"); } else {int idxStyle = 0; pour (int i = 0; i <fontCon.length; i ++) {if (fontCon [i] == frame.getfont (). getStyle ()) idxStyle = i; } nametx.setText (frame.getfont (). getName ()); // modifier le texte StyletX.seTText (FontStyleSet [idxStyle]); sizetx.setText ("" + frame.getfont (). getSize ()); namelt.setSelectedValue (frame.getFont (). getName (), true); // Changer la liste pour afficher Stylelt.SetselectedIndex (idxStyle); sizelt.setselectedValue ("" + frame.getFont (). GetSize (), true); Font = new Font (FontNameSet [0], fontCon [0], 12); // Enregistrer le format actuel newfont = font; // Enregistrer le format Font original prestx.setfont (font); // défini sur le mode actuel dans Aperçu}} private void addMenu () {// ajouter au menu // 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 ("taille:"); sizelb.setbounds (275, 14, 79, 24); sizelb.setfont (new java.awt.font ("simsun", 1, 14)); Preslb = new JLabel (); getContentPane (). Add (prélb); PRESLB.SETTEXT ("Aperçu:"); PRESLB.SetBounds (151, 150, 120, 80); Preslb.setfont (new Java.awt.font ("Simsun", 1, 14)); // 4 个 Textfield ----------------------------------------------------------------------------- Nametx = new JTextfield (); nametx.setEdIT (false); getContentPane (). add (nametx); Nametx.setbounds (10, 42, 120, 22); StyletX = new JTextField (); StyletX.SetEdIT (false); getContentPane (). Add (StyletX); StyletX.SetBounds (151, 42, 100, 21); sizetx = new JTextField (); sizetx.setEdIT (false); getContentPane (). add (sizetx); sizetx.setbounds (275, 42, 79, 22); prestx = new JTextField (); prestx.setEdIT (false); getContentPane (). Add (prestx); prestx.setbounds (151, 200, 203, 61); prestx.setText (slangue [1]); // 3 个下拉条 - + 监听 ------------------------------------------------------------------------- JSCROLLPANE1 = NOUVEAU JSCROLLPANE (); getContentPane (). Add (jscrollPane1); jscrollpane1.setbounds (10, 74, 120, 210); Gens namelt = new JList (); jscrollpane1.setViewportView (namelt); namelt.setModel (FontnameMemodel); namelt.setbounds (274, 193, 90, 86); namelt.setborder (borderfactory .CreateEtChedBorder (bivelborder.wowered)); namelt.addmouseListener (new MouseAdapter () {public void MouseClicked (MouseEvent evt) {nameltMouseClicked (evt);}}); } jscrollPane2 = new JscrollPane (); getContentPane (). Add (jscrollPane2); jscrollpane2.setbounds (151, 74, 100, 103); Gens Stylelt = new JList (); jscrollpane2.setViewportView (Stylelt); Stylelt.setModel (FontstyleModel); Stylelt.setbounds (310, 215, 70, 102); Stylelt.setborder (BorderFactory .CreateEtChedBorder (Bevelborder.Wowered)); Stylelt.AddMouseListener (new MouseAdapter () {public void Mouseclicked (MouseEvent EVT) {StyleltMouseClicked (EVT);}}); } jscrollPane3 = new JScrollPane (); getContentPane (). Add (jscrollPane3); jscrollpane3.setbounds (275, 75, 79, 100); Gens sizelt = new JList (); jscrollpane3.setViewportView (sizelt); Sizelt.setModel (FonTsizEModel); Sizelt.setbounds (300, 218, 54, 102); Sizelt.setborder (BorderFactory .CreateEtChedBorder (Bevelborder.Wowered)); Sizelt.AddMouseListener (new MouseAdapter () {public void MouseClicked (MouseEvent EVT) {SizeltMouseClicked (EVT);}}); } // --------------------------------------------------------------------------------------- // 中英选项 (------------------------------------------------------------------------- Languageg = New Buttongroup (); Language [0] = Adpreate [0]); Langue [0] .SetBounds (271, 179, 40, 20); }); LanguageG.Add (Language [1]); --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {ApprovectionPerformed (EVT); }}); // Annuler le bouton Annuler = new Jbutton (); getContentPane (). Add (annuler); annuler.setText ("annuler"); 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);}}); // Bouton de sélection de couleurs choisie = new Jbutton (); getContentPane (). Add (choisi); Choose.SeTText ("Color"); Choose.SetBounds (287, 265, 67, 20); Choose.Setfont (new Java.awt.font ("KAITI_GB2312", 1, 12)); Choose.AddActionListener (new ActionListener () {public void ActionPerformed (ActionEvent EVT) {ChoseActionPerformed (EVT);}}); // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (screensize.height - framesize.height) / 2); } private void nameltmousceClicked (MouseEvent EVT) {// Click 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 Click Event 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 sizeltmousseclicked (MouseEvent EVT) {// Click Click Event SIZETX.SeTTEXT (Sizelt.getSelectedValue (). ToString ()); Font = new Font (font.getName (), Font.getStyle (), Integer.ParseInt (sizetx.getText ())); prestx.setfont (font); } private void ApproveActionPerformed (ActionEvent EVT) {// Déterminez l'événement de déclenchement du nom de la chaîne de bouton = nametx.getText (); int style = fontCon [stylelt.getSelectedIndex ()]; int size = Integer.ParseInt (sizetx.getText ()); FONT = nouvelle police (nom, style, taille); frame.setfont (FONT); // objet de police de la fenêtre parent newfont = font; // Mettez à jour le format de sauvegarde d'origine newColor = couleur; // Mettez à jour la couleur this.dispose (); } private void annuleRACTIONPELFORED (ActionEvent EVT) {// Annuler le déclencheur du bouton } private void ChooseActionPerformed (ActionEvent EVT) {// Color Sélection Trigger Event if (Colordlg == null) {Colordlg = JColorChoOser.CreateDialog (FontFormat.Te, "Select Text Color", True, ColorChoose, New ColorOkListener (), Null); } colorchoose.setColor (color = prestx.getForeground ()); colordlg.setVisible (true); } classe ColorOkListener implémente ActionListener {// Réécriture du bouton de couleur cliquez sur l'interface de superposition de classe d'écoute ActionListener Public void ActionPerformed (ActionEvent e) {Color C = colorChoose.getColor (); color = c; prestx.setForeground (c); prestx.repaint (); }}} Les effets sont les suivants:
J'espère que cet article vous sera utile. Tout cela est pour vous de présenter l'onglet Contenu des paramètres de la police de Windows Java Imitation. J'espère que tout le monde continuera à suivre notre site Web! Si vous souhaitez apprendre Java, vous pouvez continuer à suivre ce site Web.