Quero usar o Java para criar um software de edição txt como no Windows. Envolve a guia Configuração da fonte. Eu procurei on -line por um longo tempo, mas não consegui encontrá -lo. Eu estava com raiva e escrevi um eu mesmo. Vou postar aqui para compartilhar. Da próxima vez que encontrar um problema, não preciso escrever o código!
experimento do pacote; importar java.awt.*; importar java.awt.event.actionEvent; importar java.awt.event.actionListener; importar java.awt.event.mouseAdApter; import java.awt.event.mouseevent; impornbor.swing.*;; FontFormat estende JDialog {private Jlabel namelb; STYLELB PRIVADO JLABEL; Privado Jlabel Sizelb; Privado Jlabel Preslb; Private JTextfield Nametx; Private JTextField StyletX; Private JTextfield Sizetx; Private JTextfield Prestx; Jlist privado Namelt; estilista privado jlist; private JLIST SIZELT; private JScrollPane JScrollPane1; private JScrollPane JScrollPane2; private JScrollPane JScrollPane3; JButton privado aprova; cancelamento privado de jbutton; JButton privado Escolha; private jradiobutton [] idioma = novo jradiobutton [2]; Language privado de ButtongRoup; private string slanguage [] = {new String ("li tao"), new string ("abc")}; quadro estático privado JFrame; Fonte pública Fonte, newfont; // Classe de font cor privada cor; // classe colorida cor newColor; private jfileChooser filechoose = new jfileChooser (); // Classe de seleção de arquivos Instância privada jdialog colordlg; // diálogo colorido private jcolorchooser colorchoose = novo ambiente de ambiente de seleção de seleção do jcolorchooser; // Esta classe também obtém fontes do sistema; private string [] fontNameSet; // font 'lógico' set // String Array of Font 'Style' set Private String [] fontStyleSet = {"general", "Tilt", "Bold", "Tilt Bold"}; // Matriz constante do 'estilo' de font set private Integer [] fontcon = {font.plain, font.italic, font.bold, font.bold | Font.italic}; // Font 'size' set Private String [] fontSizest = {"6", "7", "8", "9", "10", "11", "12", "14", "16", "18", "20 20", "22", "24," "26", "28," 36 "," "48", "72", "; public static void main (string args []) {// função principal fontformat a = new FontFormat (); A.setVisible (verdadeiro); } public fontFormat () {// o construtor sem parametera Super (quadro, "Janela de configuração do Tao - Font", true); quadro = novo jframe (); initgui (); } public FontFormat (JFRame Frame) {// O construtor de construção de parâmetros Super (quadro, "Li Tao-Window Window", true); this.frame = frame; // deve haver um objeto de fonte público na janela dos pais // setalwaysOntop (true); initgui (); } private void initgui () {// Inicialização da interface tente {getContentPane (). setLayout (null); Ambiente = Graphicsenvironment.getLocalGraphicSenvironment (); // Graphicsenvironment é uma classe abstrata que não pode ser instanciada e só pode usar o método estático para obter uma instância fontNameSet = Ambient.getAvilableFontfamilyNames (// Get System FONT (); SetSize (380, 337); setDefaultCloseoperation (windowconstants.dispose_on_close); setWindowPos (); // centralize a tela da janela setResizable (false); // tamanho imutável} catch (Exceção e) {e.printStackTrace (); }} private void initfont () {// inicialize a fonte // Defina o formato de fonte padrão como o formato da fonte oposto à fonte da janela pai 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", verdadeiro); Fonte = nova fonte (FontNameset [0], Fontcon [0], 12); newfont = font; // salve o formato de fonte original Prestx.setFont (font); // JoptionPane.ShowMessAgedialog (null, "CCAC"); } else {int idxstyle = 0; for (int i = 0; i <fontcon.length; i ++) {if (fontcon [i] == chame.getfont (). getStyle ()) idxstyle = i; } nametx.settext (frame.getfont (). getName ()); // altere o texto styletx.settext (fontstyleSet [idxstyle]); sizetx.settext ("" + frame.getfont (). getSize ()); namelt.setSelectedValue (estrutura.getFont (). getName (), true); // Lista de alterações para exibir StyLelt.setSelectedIndex (idxstyle); sizelt.setsElectedValue ("" + frame.getFont (). getSize (), true); font = new Font (FontNameSet [0], Fontcon [0], 12); // Salvar o formato atual newfont = font; // salve o formato de font original prestx.setFont (font); // defina para o modo atual // 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 ("visualização:"); Preslb.setbounds (151, 150, 120, 80); preslb.setFont (New Java.awt.font ("Simsun", 1, 14)); // 4 个 Textfield ----------------------------------------------------------------------------------- NAMETX = new JTextfield (); 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 = new jtextfield (); sizetx.seteditable (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 个下拉条-+监听 ----------------------------------------------------------- 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 (FontStyModel); 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 DefaultComBOBoxModel (FontSizest); 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);}}); } // ----------------------------------------------------------------------------------- // (------------------------------------------------------- Idioma [0]. }}); idiomag.add (idioma [1]); --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {aprovouActionPeformed (EVT); }}); // Botão de cancelamento cancelamento = new jbutton (); getContentPane (). add (cancel); 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);}}); // botão de seleção de cores, escolha = novo jbutton (); getContentPane (). Add (escolheu); escolha.settext ("cor"); escolha.setbounds (287, 265, 67, 20); escolha.setFont (New java.awt.font ("kaiti_gb2312", 1, 12)); escolha.addactionListener (new ActionListener () {public void ActionPerformed (ActionEvent EVT) {CHOSEACTIONPERFORMED (EVT);}}); // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ (screensize.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 (fonte); } private void styleltMouseClicked (mouseevent evt) {// mouse click event string temp = stylelt.getSelectedValue (). tostring (); styletx.settext (temp); int index = 0; while (índice <4 &&! FontStyleSet [Index] .equals (temp)) {index ++; } font = new font (font.getName (), fontcon [index], font.getSize ()); prestx.setFont (fonte); } private void sizeltMouseClicked (mouseevent evt) {// mouse clique em event sizetx.settext (sizelt.getSelectedValue (). tostring ()); font = new font (font.getName (), font.getStyle (), integer.parseint (sizetx.getText ())); prestx.setFont (fonte); } private void aprovouctionPeled (ActionEvent EVT) {// Determine o evento de gatilho do nome da string de botão = nametx.getText (); int style = fontcon [stylelt.getSelectedIndex ()]; int size = Integer.parseint (sizetx.getText ()); fonte = nova fonte (nome, estilo, tamanho); frame.setFont (font); // Objeto de fonte da janela pai newfont = font; // Atualize o formato de salvamento original newColor = color; // Atualize a cor this.dispose (); } private void cancelActionPerformed (ActionEvent EVT) {// Cancelar o evento de gatilho do botão this.dispose (); } private void ChooseActionPelemed (ActionEvent EVT) {// Evento de gatilho de seleção de cores if (colordlg == null) {colordlg = jcolorchooser.createdialog (fontformat.This, "Selecione a cor do texto", TrueCoose, colorhoose, colorOklistner (), null; } colorchoose.setColor (color = prestx.getforeground ()); colordlg.setVisible (true); } classe colorOkListener implementa ActionListener {// Reescreva o botão de cor Clique na classe de audição interface interface ActionListener public void actionPerformed (ActionEvent e) {color c = colorchoose.getColor (); cor = c; prestx.setforeground (c); Prestx.Repaint (); }}} Os efeitos são os seguintes:
Espero que este artigo seja útil para você. Tudo isso é para você apresentar o conteúdo da guia Configurações de fontes de imitação Java. Espero que todos continuem a seguir nosso site! Se você quiser aprender Java, pode continuar a seguir este site.