Javaを使用して、WindowsのようなTXT編集ソフトウェアを作成したいと思います。フォント設定タブが含まれます。私は長い間オンラインで検索しましたが、それを見つけることができませんでした。私は怒って、自分で書いた。共有するためにここに投稿します。次回そのような問題に遭遇したとき、自分でコードを書く必要はありません!
パッケージ実験; java.awt。*;インポートjava.awt.event.actionevent;インポートjava.awt.event.actionlistener; Import java.awt.event.mouseadapter; import java.awt.event.vent.mousevent; import javax.swing。クラスfontformatはjdialogを拡張します{private jlabel namelb;プライベートJlabel Stylelb;プライベートJlabel Sizelb;プライベートJlabel Preslb;プライベートJTextfield Nametx;プライベートJTextfield Styletx;プライベートJTextfield Sizetx; Private JTextfield Prestx;プライベートJLIST NAMELT;プライベートJList Stylelt;プライベートJLISTサイズ;プライベートJScrollpane jscrollpane1;プライベートjscrollpane jscrollpane2;プライベートjscrollpane jscrollpane3;プライベートjbutton承認。プライベートjbuttonキャンセル。プライベートjbutton選択。 Private Jradiobutton [] Language = new Jradiobutton [2];プライベートボトングルーパー言語; private string slanguage [] = {new String( "li tao")、new String( "abc")};プライベート静的JFrameフレーム。パブリックフォントフォント、NewFont; // Fontクラスプライベートカラー; //カラークラスカラーニューカラー。 Private JFileChooser FileChoose = new JFileChooser(); //ファイル選択クラスインスタンスプライベートJdialog Colordlg; // Color Dialog Private jcolorchooser colorColChoose = new jcolorchooser(); //カラー選択クラスインスタンスプライベートグラフィックンヴィロンメント環境; //このクラスはシステムフォントも取得します。 private string [] fontnameset; // font 'logical name' set // font 'スタイルの文字列配列' private string = {"general"、 "tilt"、 "bold"、 "tilt bold"}; // font 'style' set set private integer [] 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"、 "28"、 "36"、 "48"、 "48"、 "24"、 "28"、 "36"、 " public static void main(string args []){// main function fontformat a = new fontformat(); a.setVisible(true); } public fontformat(){// parameterless constructor super(frame、 "li tao、フォント設定ウィンドウ"、true); 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);環境= GraphicsEnvironment.getLocalGraphicsEnvironment(); // GraphicsEnvironmentは、インスタンス化できない抽象クラスであり、その中の静的メソッドを使用してfontnameset =環境を取得することができます。 SetSize(380、337); setDefaultCloseoperation(windowconstants.dispose_on_close); setWindowpos(); // [ウィンドウ画面]設定可能(false); // size inmutable} catch(例外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()); // text text styletx.settext(fontstyleSet [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(){//メニュー// 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( "preview:"); 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]); // 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 .createetchedborder(bevelborder.lowered)); namelt.addmouseListener(new Mouseadapter(){public void mouseclicked(mousevent 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(mousevent 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 .createetchedborder(bevelborder.lowered)); sizelt.addmouseListener(new Mouseadapter(){public void mouseclicked(mousevent evt){sizeltmouseclicked(evt);}}); }// ------------------------------------------------------------------------------------- // 中英选项(--------------------------------------------------------------------------------- languageg = new ButtonGroup(); language[0] = new JRadioButton("中"); getContentPane().add(language[0]); language[0].setSelected(false);// Initialize表示言語[0] .setbounds(179、40、20)。 prestx.settext(0]); Java.awt.font( "Simsun"、1、12); Language [1]); ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {epproveactionPerformed(evt); }}); //キャンセルボタンキャンセル= 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()。add(chose); seettext( "color"); seet.setbounds(287、265、67、20); seet.setfont(new java.awt.font( "kaiti_gb2312"、1、12)); chood.addactionlistener(new ActionListener(){public void ActionPerformed(ActionEvent evt){choseActionPerformed(evt);}}); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (screensize.height -framesize.height) / 2); } private void nameltmouseclicked(mousevent evt){//マウスクリックイベントnametx.settext(namelt.getSelectedValue()。toString()); font = new font(nametx.getText()、font.getStyle()、font.getSize()); prestx.setfont(font); } private void styleltmouseClicked(mouseEvent evt){//マウスクリックイベント文字列emp = 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(mousevent 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 appoidectionPerformed(actionEvent evt){//ボタン文字列名= nametx.getText()のトリガーイベントを決定します; int style = fontcon [stylelt.getSelectedIndex()]; int size = integer.parseint(sizetx.getText()); font = new font(name、style、size); frame.setfont(font); //親ウィンドウのフォントオブジェクトnewfont = font; //元の保存形式を更新newcolor = color; // color this.dispose(); } private void cancelActionPerformed(actionEvent evt){//キャンセルボタントリガーイベントthis.dispose(); } private void chooseactionperformed(actionevent evt){//色選択トリガーイベント(colordlg == null){colordlg = jcolorchooser.createdialog(fontformat.this、 "select text color"、true、colorColschoose、new Coloroklistener()、null); } colorChoose.setColor(color = prestx.getForeGround()); colordlg.setVisible(true); } clorse coloroklistenerはactionlistenerを実装します{// color colorボタンの書き込みリスニングクラスインターフェイスactionlistener public void actionperformed(actionevent e){color c = colorChoose.getColor(); color = c; prestx.setforeground(c); prestx.repaint(); }}}効果は次のとおりです。
この記事があなたに役立つことを願っています。これは、Java Imitation Windowsフォント設定の内容を紹介するためのすべてです。みんなが私たちのウェブサイトをフォローし続けることを願っています! Javaを学びたい場合は、このWebサイトをフォローし続けることができます。