Quiero usar Java para hacer un software de edición TXT como en Windows. Implica la pestaña de configuración de fuente. Busqué en línea durante mucho tiempo pero no pude encontrarlo. Estaba enojado y escribí uno yo mismo. Lo publicaré aquí para compartirlo. La próxima vez que me encuentre con tal problema, ¡no tengo que escribir el código yo mismo!
Experimento del paquete; import 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.*; import javax.swing.beberder;/** ** ** ** ** ** ** ** ** ** ** ** Attendor stiting FontFormat extiende jdialog {private jlabel namelb; stylel privado Jlabel; Privado Jlabel Sizelb; Privado Jlabel Preslb; privado jtextfield nametx; privado JTextfield Styletx; privado jtextfield sizetx; privado jtextfield prestx; Privado Jlist Namelt; STYLELT JLIST PRIVADO; Privado Jlist Sizelt; JSCROLLPANE PRIVADO JSCROLLPANE1; JSCROLLPANE PRIVADO JSCROLLPANE2; JSCROLLPANE PRIVADO JSCROLLPANE3; Private JButton apre; privado jbutton cancelar; Jbutton privado el elige; Jradiobutton privado [] lenguaje = new JRadioButton [2]; Languageg private en el longro de gotos; slanguage de cadena privada [] = {new String ("Li Tao"), nueva cadena ("ABC")}; Marco de jframe estático privado; Public Font Font, Newfont; // Font clase de color privado Color; // Color Color Color NewColor; privado jfilechooser fileChoose = new jfilechooser (); // instancia de clase de selección de archivos // Esta clase también obtiene fuentes del sistema; string private [] fontnameset; // font 'name lógico' set // matriz de font 'style' set private string [] fontStyleSet = {"general", "inclinar", "negrita", "inclinar en negrita"}; // Matriz constante de Font 'Style' Set Integer privado [] fontcon = {font.plain, font.italic, font.bold, font.bold | Fuente.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 []) {// función principal fontformat a = new FontFormat (); A.SetVisible (verdadero); } public fontFormat () {// El constructor sin parámetros super (marco, "Li Tao - Fuente de configuración de la ventana", true); marco = new Jframe (); initgui (); } public fontFormat (JFRame Frame) {// El constructor que contiene parámetros super (marco, "Ventana de configuración de Li Tao -font", true); this.frame = frame; // debe haber un objeto de fuente pública en la ventana principal // setalwaysontop (true); initgui (); } private void initgui () {// Inicialización de interfaz Try {getContentPane (). SetLayout (null); ambiente = gráfico de gráficosenvirment.getLocalgraphicsenvironment (); // GraphicSenVironment es una clase abstracta que no puede ser instanciada, y solo puede usar el método estático en él para obtener una instancia de FontNameset = entorno.getAVailableFaMilyNames (); // font addmenu (); // agirte initFont (); // inicializate fiMt (); setSize (380, 337); setDefaultCloseOperation (WindowsConstants.Dispose_on_Close); setWindowPos (); // Center la pantalla de la ventana setResizable (false); // size inmutable} capt (excepción e) {E.PrintStackTrace (); }} private void initfont () {// Inicializar la fuente // Establecer el formato de fuente predeterminado en el formato de fuente opuesto a la fuente de la ventana principal 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", verdadero); fuente = nuevo Font (FontNameset [0], FontCon [0], 12); newfont = font; // Guardar el formato de fuente original Prestx.SetFont (FONT); // joptionPane.ShowMessEdialog (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 ()); // Cambiar text styletx.settext (FontStyleset [IDXStyle]); Sizetx.SetText ("" + Frame.getFont (). GetSize ()); namelt.setselectedValue (frame.getFont (). getName (), true); // Cambiar la lista para mostrar stylelt.setselectedIndex (IDXStyle); Sizelt.setselectedValue ("" + frame.getFont (). getSize (), true); font = new Font (fontnameset [0], fontcon [0], 12); // Guardar el formato actual newFont = font; // Guardar el formato de fuente original Prestx.setFont (font); // Establezca en el modo actual en vista previa}} private void addmenu () {// Agregar a menú // 4 lables----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nameLb = new JLabel(); getContentPane (). Agregar (namelb); namelb.settext ("Font:"); namelb.setBounds (10, 14, 120, 26); namelb.setFont (nuevo java.awt.font ("Simsun", 1, 14)); stylelB = new JLabel (); getContentPane (). ADD (STYLELB); stylelb.settext ("Font:"); stylelb.setBounds (151, 14, 120, 23); stylelb.setFont (nuevo java.awt.font ("Simsun", 1, 14)); Sizelb = new JLabel (); getContentPane (). ADD (SIZELB); sizelb.setText ("tamaño:"); Sizelb.setBounds (275, 14, 79, 24); Sizelb.setFont (nuevo java.awt.font ("Simsun", 1, 14)); PreslB = new JLabel (); getContentPane (). add (PreslB); Preslb.setText ("Preview:"); Preslb.setBounds (151, 150, 120, 80); PreslB.SetFont (nuevo Java.awt.font ("Simsun", 1, 14)); // 4 个 Textfield ------------------------------------------------------------------------------- NAMETX = new JTextField (); nametx.setEditable (falso); getContentPane (). ADD (NAMETX); nametx.setBounds (10, 42, 120, 22); styletx = new JTextField (); styletx.setEditable (falso); getContentPane (). add (styletx); styletx.setBounds (151, 42, 100, 21); sizetx = new JTextField (); sizetx.setEditable (falso); getContentPane (). Agregar (Sizetx); Sizetx.setBounds (275, 42, 79, 22); prestx = new JTextField (); prestx.setEditable (falso); 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 .CreateEetchedBorder (bisevorder.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 .CreateEetchedBorder (bisevorder.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 DefaultComboBoxModel (FontSizeset); Sizelt = new JList (); JSCrollPane3.SetViewPortView (Sizelt); Sizelt.SetModel (FontSizemodel); Sizelt.setBounds (300, 218, 54, 102); Sizelt.SetBorder (BorderFactory .CreateEetchedBorder (bisevorder.lowered)); Sizelt.AddMousElistener (new Mouseadapter () {public void MouseClicked (MouseEvent EVT) {SizeltMouseClicked (EVT);}}); } // -------------------------------------------------------------------------------------- // 中英选项 (----------------------------------------------------------- lenguaje [0] .setBounds (271, 179, 40, 20); }}) Idioma [1] = New JRadioButton ("English"); LanguageG.Add (lenguaje [1]); ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- {aprobación de aprobación (EVT); }}); // Cancelar botón Cancelar = nuevo JButton (); getContentPane (). add (cancelar); cancelar.settext ("cancelar"); cancelar.setBounds (219, 265, 67, 20); cancel.setFont (nuevo java.awt.font ("kaiti_gb2312", 1, 12)); cancel.AdDactionListener (new ActionListener () {public void ActionPerformed (ActionEvent EVT) {CancelActionPerformed (EVT);}}); // botón de selección de color elección = new JButton (); getContentPane (). Agregar (elegir); elegir.settext ("color"); elegir.setBounds (287, 265, 67, 20); elegir.setFont (nuevo java.awt.font ("kaiti_gb2312", 1, 12)); elegir.AdDactionListener (new ActionListener () {public void ActionPerformed (ActionEvent EVT) {ChoseActionPerformed (EVT);}}); // ----------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------- (Screensize.Height - Framesize.Height) / 2); } private void nameltMouseClicked (MouseEvent EVT) {// Evento de clic de mouse nametx.settext (namelt.getSelectedValue (). toString ()); Font = new Font (nametx.gettext (), font.getStyle (), font.getSize ()); prestx.setFont (fuente); } private void styleltmouseClicked (mouseEvent Evt) {// CLIC de ratón Cadena de eventos 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 (fuente); } private void sizeltMouseClicked (MouseEvent EVT) {// MAUSE CLIC Event Sizetx.settext (Sizelt.getSelectedValue (). ToString ()); font = new Font (font.getName (), font.getStyle (), integer.parseInt (sizetx.gettext ())); prestx.setFont (fuente); } Private void aprobación de aprobación (ActionEvent EVT) {// Determine el evento de activación del name de cadena de botón = nametx.gettext (); int style = FontCon [stylelt.getSelectedIndex ()]; int size = Integer.ParseInt (Sizetx.gettext ()); fuente = nueva fuente (nombre, estilo, tamaño); Frame.setFont (fuente); // Objeto de fuente de la ventana principal newfont = font; // Actualizar el formato de guardado original newColor = color; // Actualizar el color this.dispose (); } private void CancelActionPerformed (ActionEvent EVT) {// Cancel Button Trigger Event this.dispose (); } private void ChoosActionperformed (ActionEvent Evt) {// Color Selection Trigger Event if (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.this, "seleccionar color de texto", verdadero, colorchoose, nuevo coloroklistener (), null); } colorchoose.setColor (color = prestx.getforeground ()); colordlg.setVisible (verdadero); } class ColorOkListener implementa ActionListener {// Reescribe el botón Color Haga clic en la interfaz de superposición de escucha ActionListener public void Actionperformed (ActionEvent E) {Color c = ColorChoose.getColor (); color = c; prestx.setForeground (c); prestx.Repaint (); }}} Los efectos son los siguientes:
Espero que este artículo te sea útil. Todo esto es para usted introducir el contenido de la pestaña de configuración de fuentes de IMitation de Java. ¡Espero que todos continúen siguiendo nuestro sitio web! Si desea aprender Java, puede continuar siguiendo este sitio web.