【プログラムCont7.java】**************************
import java.awt.*; import java.awt.event.*; import java.util.*; import java.io.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import nice.*; class ListFrame extends JFrame implements WindowListener,ListSelectionListener,ActionListener{ Container cn=getContentPane(); JPanel pc=new JPanel(new GridLayout(2,0),true); JTextArea ta=new JTextArea(0,0); JScrollPane spc=new JScrollPane(ta); DefaultListModel dl; JList lic; JScrollPane spc2; JPanel pe=new JPanel(new GridLayout(2,0),true); JPanel pe1=new JPanel(new GridLayout(1,0),true); JScrollPane sp; JList lie; Color c1,c2; JPanel pe2=new JPanel(new GridLayout(3,0),true); JLabel lc=new JLabel(); JLabel lim=new JLabel(); Icon ic1=new ImageIcon("iw.gif"); Icon ic2=new ImageIcon("iwe.gif"); Icon ic3=new ImageIcon("iwl.gif"); Icon ic4=new ImageIcon("iwul.gif"); JTextField tf=new JTextField(); IoControl ioc=new IoControl(); JFileChooser jf; int ix=-1; int isl; int i1=1,i2=2,i3=3,i4=4,i5=5,i6=6; String sta="テキストに書き込む。",slc="行を選ぶ。",stf="上の番号を入力"; String[] sst1=Cont5.ss2,sst2=Cont5.ss3; String[] ssbf; final File fuf=new File("UsedFile.nice"); DefaultListModel uflist=new DefaultListModel(); boolean buf;//ファイルからリスト書き込みの結果用フラグ final File fpr=new File("prepared.nice");//定型文保存用ファイル final String snice="@@nice@@"; DefaultListModel pflist=new DefaultListModel(); boolean bpf; final File ftg=new File("Tag.nice");//タグ保存用ファイル DefaultListModel tglist=new DefaultListModel(); boolean btf; Mode[] md=new Mode[4]; int mn; File f1; boolean btx=false;//中央リスト書き換えのフラグ final ListFrame li; ListFrame(Color cl1,Color cl2){ super("TagWriter EveryOne"); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setVisible(true); addWindowListener(this); li=this; buf=ioc.fileWrite(fuf,uflist); bpf=ioc.fileWrite(fpr,pflist,snice);//定型文をリストへ btf=ioc.fileWrite(ftg,tglist,snice); if(btf){ } md[0]=new Mode0(); md[1]=new Mode1(); md[2]=new Mode2(); md[3]=new Mode3(); cn.add(pc,BorderLayout.CENTER); ta.setBackground(new Color((float)0.8,(float)0.8,(float)0.8)); ta.setEditable(true); ta.setBorder(new EtchedBorder()); ta.addFocusListener(new TextFocusListener(ic4,sta,ta)); pc.add(spc); dl=new DefaultListModel(); dl.addElement("作業開始"); lic=new JList(dl); //中央のリスト lic.setBackground(new Color((float)0.8,(float)0.8,(float)0.8)); lic.addListSelectionListener(this); lic.addFocusListener(new TextFocusListener(ic3,slc,dl)); spc2=new JScrollPane(lic); pc.add(spc2); cn.add(pe,BorderLayout.EAST); c1=cl1; c2=cl2; lie=new JList(); lie.setFixedCellHeight(45); lie.setCellRenderer(new MyCellRenderer(c1,c2)); ioc.fileWrite(md[0].eastlist,lie,1); sp=new JScrollPane(lie); pe1.add(sp); pe.add(pe1); pe.add(pe2); pe2.add(lim); lim.setIcon(ic1); lim.setBorder(new EtchedBorder()); pe2.add(lc); pe2.setBorder(new EtchedBorder()); pe2.add(tf); tf.addActionListener(this); tf.addFocusListener(new TextFocusListener(ic1,stf,tf)); tf.requestFocusInWindow(); } public void windowClosing(WindowEvent e){ if(! ioc.fileWrite(uflist,fuf)){ JOptionPane.showMessageDialog(li,"最近使ったファイルが更新出来ませんでした。"); } if(! ioc.fileWrite(pflist,fpr,snice)){ JOptionPane.showMessageDialog(li,"定型文登録ファイルが更新出来ませんでした。"); } if(! ioc.fileWrite(tglist,ftg)){ JOptionPane.showMessageDialog(li,"タグ登録ファイルが更新出来ませんでした。"); } System.exit(0); } public void windowOpened(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} class TextFocusListener extends FocusAdapter{ Icon ic; String lword; Object obj; TextFocusListener(Icon icg,String s,Object o){ ic=icg; lword=s; obj=o; } public void focusGained(FocusEvent fe){ lim.setIcon(ic); lc.setText(lword); if(obj==ta & btx){ ioc.fileWrite(dl,ta); btx=false; } } public void focusLost(FocusEvent fe){ if(obj==ta){ ioc.fileWrite(ta,dl); btx=false; } } } public void valueChanged(ListSelectionEvent e){ JList tmp=(JList)e.getSource(); String st=(String)tmp.getSelectedValue(); } public void actionPerformed(ActionEvent e){ int isl=md[mn].eastlist.length; int ifirst=0; if(mn==0)ifirst=1; JTextField temp=(JTextField)e.getSource(); int itn=0; try{ itn=Integer.parseInt(temp.getText()); } catch(NumberFormatException ne){ lc.setText("リストの番号を入力して下さい。"); lim.setIcon(ic2); tf.setText(""); } if(itn>=(isl+ifirst) || itn<ifirst){ lc.setText("番号が違います。 "); lim.setIcon(ic2); tf.setText(""); } else{ tf.setText(""); lim.setIcon(ic1); lc.setText(""); md[mn].selectItem(itn); } } abstract class Mode{ int modenum; String s1; String[] ss0={"原本を作成、編集","定型文を編集、登録、削除","タグを編集、登録"}; String[] ss1={"モード変更","原本をロード","原本をセーブ","原本を上書き","最近使ったファイル","定型文挿入"}; String[] ss2={"モード変更","定型文をロード","定型文を登録","定型文を削除"}; String[] ss3={"モード変更","タグを追加","タグを削除","タグを編集","タグを登録","タグを初期化"}; String[] sst={"<p>","<p><b>ナイス博士</b>「","<p><b>BB君</b>「","<p><b>そよ風さん</b>「", "<p><IMG height=56 src=\"nice.gif\" width=70></p>","<p><IMG height=56 src=\"bb.gif\" width=70></p>", "<p><IMG height=56 src=\"wind.gif\" width=70></p>"}; String[] ssb={"","」</p>","」</p>","」</p>","","",""}; String[] eastlist; Object data; abstract void selectItem(int i); abstract void setDefault(); int setModenum(int i){ modenum=i; return modenum; } } class Mode0 extends Mode{ Mode0(){ eastlist=ss0; } void setDefault(){}; void selectItem(int i){ mn=i; ioc.fileWrite(md[i].eastlist,lie,0); setModenum(i); md[i].setDefault(); } } class Mode1 extends Mode{ //原本作成 Mode1(){ String[] peast=new String[sst.length]; for(int i=0;i<sst.length;i++){ peast[i]=sst[i]+"本文"+ssb[i]; } eastlist=new String[ss1.length+sst.length]; System.arraycopy(ss1,0,eastlist,0,ss1.length); System.arraycopy(peast,0,eastlist,ss1.length,peast.length); } void setDefault(){} void selectItem(int i){ switch(i){ case 0: mn=i; ioc.fileWrite(md[i].eastlist,lie,1); setModenum(i); break; case 1://原本をロード lim.setIcon(ic3); jf=new JFileChooser(); int res=jf.showOpenDialog(lim); if(res==JFileChooser.APPROVE_OPTION){ f1=jf.getSelectedFile(); ioc.fileWrite(f1,ta); taSet(); dl.clear(); ioc.fileWrite(f1,dl); lc.setText(f1.getName()); if(! ioc.listChange(uflist,f1.getName())){ uflist.add(0,f1.getAbsolutePath()); } } else{ lc.setText("番号を入力して下さい。"); } break; case 2: lc.setText("保存する場所を選んで下さい。"); lim.setIcon(ic3); jf=new JFileChooser(); res=jf.showSaveDialog(lim); if(res==JFileChooser.APPROVE_OPTION){ f1=jf.getSelectedFile(); ioc.fileWrite(ta,f1); } else{ lc.setText("番号を入力して下さい。"); } break; case 3://原本を上書き if(JOptionPane.showConfirmDialog(ta,"表示されたテキストを上書きしますか?","上書き確認", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,ic1)!=JOptionPane.OK_OPTION) break; String strue="上書きしました。"; String sfalse="上書き出来ませんでした。"; String s3; if(ioc.fileWrite(ta,f1)){ s3=strue; } else{ s3=sfalse; } JOptionPane.showMessageDialog(lic,s3); break; case 4://最近使ったファイル if(!buf){ JOptionPane.showMessageDialog(lic,"最近使ったファイルがありません。"); break; } String[] ss4=new String[uflist.size()]; uflist.copyInto(ss4); data=JOptionPane.showInputDialog(ta,"ファイルを選択してください" , "最近使ったファイル" , JOptionPane.INFORMATION_MESSAGE,ic1,ss4,ss4[0]); if(data!=null){ ioc.listChange(uflist,data); f1=new File((String)data); dl.clear(); if(! ioc.fileWrite(f1,dl)){ JOptionPane.showMessageDialog(li,"ファイルが見つかりません。"); break; } ioc.fileWrite(f1,ta); taSet(); } break; case 5://定型文挿入 String s5=Cont7.spre; pflist.insertElementAt(s5,0); Object[] datalist=pflist.toArray(); String[] sslist=new String[datalist.length]; for(int j=0;j<datalist.length;j++){ sslist[j]=(String)datalist[j]; if(sslist[j].length()>80)sslist[j]=sslist[j].substring(0,80); } data=JOptionPane.showInputDialog(ta,"定型文を選んでください。" ,"定型文選択", JOptionPane.INFORMATION_MESSAGE,ic1,sslist,sslist[sslist.length-1]); for(int j=0;j<sslist.length;j++){ if(data.equals(sslist[j])){ s5=(String)datalist[j]; break; } } String[] ssi5={"先頭","最後"}; String s52=s5; if(s52.length()>400)s52=s52.substring(0,400); data=JOptionPane.showInputDialog(ta,s52+ "\n定型文を挿入する位置を選択してください。" , "タイトルと定型文の一部" ,JOptionPane.INFORMATION_MESSAGE,ic1,ssi5,ssi5[0]); s5=s5.substring(s5.indexOf("\n")+1); if(data.equals("先頭")){ ta.insert(s5,0); } else{ ta.append(s5); } pflist.remove(0); taSet(); break; default://タグ挿入 data=(String)lic.getSelectedValue(); if(data==null){ lc.setText("まず、隣のリストで行を選んでください。"); lim.setIcon(ic2); break; } int lindex=lic.getSelectedIndex(); int index=i-ss1.length; data=sst[index]+data+ssb[index]; dl.set(lindex,data); btx=true; break; } } } class Mode2 extends Mode{//定型文を編集 Mode2(){ eastlist=ss2; } void setDefault(){ lc.setText("定型文をテキストエリアに書くか、ロードして編集し、登録するモード"); } void selectItem(int i){ switch(i){ case 0: mn=i; ioc.fileWrite(md[i].eastlist,lie,1); setModenum(i); break; case 1: Object[] datalist=pflist.toArray(); String[] sslist=new String[datalist.length]; String s5=""; int ia; for(int j=0;j<datalist.length;j++){ sslist[j]=(String)datalist[j]; if(sslist[j].length()>80)sslist[j]=sslist[j].substring(0,80); } data=JOptionPane.showInputDialog(ta,"定型文を選んでください。" ,"定型文選択", JOptionPane.INFORMATION_MESSAGE,ic1,sslist,sslist[sslist.length-1]); for(int j=0;j<sslist.length;j++){ if(data.equals(sslist[j])){ s5=(String)datalist[j]; break; } } String[] ssi5={"先頭","最後"}; String s52=s5; if(s52.length()>400)s52=s52.substring(0,400); ia=JOptionPane.showConfirmDialog(ta,s52+ "\nこの定型文をロードしますか?","編集する定型文", JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,ic1); if(ia==JOptionPane.OK_OPTION){ s5=s5.substring(s5.indexOf("\n")+1); ta.setText(s5); } break; case 2: data=JOptionPane.showInputDialog(ta,"テキストエリアの文を定型文として登録します。\n名前を付けてください。", "定型文登録" ,JOptionPane.INFORMATION_MESSAGE,ic1,null,"適当な名前"); pflist.addElement(data+"\n"+(String)ta.getText()); break; case 3: datalist=pflist.toArray(); if(datalist.length==1){ JOptionPane.showMessageDialog(ta,"1つだけは削除できません。","削除不能", JOptionPane.INFORMATION_MESSAGE,ic1); break; } sslist=new String[datalist.length]; s5=""; for(int j=0;j<datalist.length;j++){ sslist[j]=(String)datalist[j]; if(sslist[j].length()>80)sslist[j]=sslist[j].substring(0,80); } data=JOptionPane.showInputDialog(ta,"削除する定型文を選んでください。" ,"定型文削除", JOptionPane.INFORMATION_MESSAGE,ic1,sslist,sslist[sslist.length-1]); int rindex=0; for(int j=0;j<sslist.length;j++){ if(data.equals(sslist[j])){ s5=(String)datalist[j]; rindex=j; break; } } s52=s5; if(s52.length()>400)s52=s52.substring(0,400); int ans=JOptionPane.showConfirmDialog(ta,s52+"\nこの定型文を削除します。" ,"削除する定型文", JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,ic1); if(ans==JOptionPane.OK_OPTION)pflist.remove(rindex); break; } } } class Mode3 extends Mode implements ActionListener{//"タグを追加","タグを削除","タグを編集","タグを登録","タグを初期化" String[] ssl; String fs1; String fs2; JTextField jf1; JTextField jf2; Icon ic1=new ImageIcon("iw.gif"); Mode3(){ eastlist=ss3; } void setDefault(){ ssl=new String[sst.length]; for(int j=0;j<sst.length;j++){ ssl[j]=sst[j]+"ここに本文が入ります。"+ssb[j]; } } public void actionPerformed(ActionEvent ae){//**** 途中 ******************************** if(ae.getActionCommand()=="決定"){ fs1=jf1.getText(); fs2=jf2.getText(); } Db.pp(fs1+fs2); } void selectItem(int i){ switch(i){ case 0: mn=i; ioc.fileWrite(md[i].eastlist,lie,1); setModenum(i); break; case 1://************************************************************************************** String s31=ssl[0]; for(int j=1;j<ssl.length;j++){ s31+="\n"+ssl[j]; } BorderDialog bd=new BorderDialog(li,"タグ追加","今までのタグ\n\n"+s31+ "\n\n本文の前後に入れたいタグを書いて、ボタンを押してください。"); Component[][] cp=new Component[2][3]; jf1=new JTextField(); cp[0][0]=jf1; JLabel jl=new JLabel("ここに本文が入ります。"); jl.setHorizontalAlignment(SwingConstants.CENTER); cp[0][1]=jl; jf2=new JTextField(); cp[0][2]=jf2; JButton jb1=new JButton("決定"); jb1.addActionListener(this); JPanel jp1=new JPanel(); jp1.add(jb1); cp[1][0]=jp1; JButton jb2=new JButton("中止"); jb2.addActionListener(this); JPanel jp2=new JPanel(); jp2.add(jb2); cp[1][2]=jp2; //Icon ic1=new ImageIcon("iw.gif"); bd.setComponent(cp,ic1); break; case 4: int ia=JOptionPane.showConfirmDialog(ta,"今使っているタグを登録しますか?","タグ登録", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,ic1); if(ia==JOptionPane.YES_OPTION){ ioc.fileWrite(ssl,tglist); } break; } } } void taSet(){ ta.setTabSize(3); ta.setPreferredSize(null); Dimension di=new Dimension(ta.getPreferredSize()); di.width +=100; ta.setPreferredSize(di); } } class BorderDialog extends JDialog{//****************************************************************************** private int ibp; private int cpc; private int cpr; private String stas; BorderDialog(Frame owner, String title,String sta){ super(owner,title,true); stas=sta; } void setComponent(Component[][] cp,Icon ic){ Container cn=getContentPane(); JTextArea sta=new JTextArea(stas); Font fo=new Font("Dialog",Font.BOLD,13); sta.setFont(fo); Dimension di=sta.getPreferredSize(); di.width +=100; di.height +=50; sta.setPreferredSize(di); sta.setBackground(Color.LIGHT_GRAY); cn.add(sta,BorderLayout.CENTER); cpr=cp.length; cpc=cp[0].length; JPanel sp=new JPanel(new GridLayout(cpr,cpc)); cn.add(sp,BorderLayout.SOUTH); for(int i=0;i<cpr;i++){ for(int j=0;j<cpc;j++){ if(cp[i][j]==null){ sp.add(new JLabel("")); } else{ sp.add(cp[i][j]); } } } JLabel sil=new JLabel(ic); cn.add(sil,BorderLayout.WEST); di.width +=100; di.height +=20*cpr+20; setSize(di); setBackground(Color.LIGHT_GRAY); setVisible(true); } } class IoControl{ boolean fileWrite(String[]f1,DefaultListModel f2){ f2.clear(); try{ for(int i=0;i<f1.length;i++){ f2.add(i,f1[i]); } return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ ex.printStackTrace(); return false; } } boolean fileWrite(String[]ss,JList li,int ifirst){ try{ String[] index=new String[ss.length]; for(int i=0,j=ifirst;i<ss.length;i++,j++){ index[i]=j+". "+ss[i]; } li.setListData(index); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ ex.printStackTrace(); return false; } } boolean fileWrite(File f1,JTextArea ta){ try{ BufferedReader br=new BufferedReader(new FileReader(f1)); ta.read(br,null); br.close(); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ ex.printStackTrace(); return false; } } boolean fileWrite(JTextArea ta,File f2){ try{ BufferedWriter bw=new BufferedWriter(new FileWriter(f2)); ta.write(bw); bw.close(); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ ex.printStackTrace(); return false; } } void fileWrite(String[] ss,JList lie){ lie.setListData(ss); } boolean fileWrite(File f1,DefaultListModel f2){ try{ BufferedReader br=new BufferedReader(new FileReader(f1)); String line; while((line=br.readLine())!=null){ f2.addElement(line); } br.close(); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ System.out.println("その他の例外"); ex.printStackTrace(); return false; } } boolean fileWrite(DefaultListModel f1,JTextArea f2){ String sl=(String)f1.get(0); for(int i=1;i<f1.size();i++){ sl+="\n"+f1.get(i); } f2.setText(sl); return true; } boolean fileWrite(DefaultListModel f1,File f2){ String sl=(String)f1.get(0); for(int i=1;i<f1.size() && i<20;i++){ sl+="\n"+(String)f1.get(i); } try{ PrintWriter pr=new PrintWriter(new BufferedWriter(new FileWriter(f2))); pr.print(sl); pr.close(); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ System.out.println("fileWrite("+f1.toString()+","+f2.toString()+")"); ex.printStackTrace(); return false; } } boolean fileWrite(DefaultListModel f1,File f2,String s){ StringTokenizer st; try{ String sl=(String)f1.get(0); for(int i=1;i<f1.size() && i<20;i++){ sl+=s+(String)f1.get(i); } st=new StringTokenizer(sl,"\n"); } catch(Exception ex){ ex.printStackTrace(); return false; } try{ PrintWriter pr=new PrintWriter(new BufferedWriter(new FileWriter(f2))); while(st.hasMoreTokens()){ pr.println(st.nextToken()); } pr.close(); return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ ex.printStackTrace(); return false; } } boolean fileWrite(JTextArea f1,DefaultListModel f2){ StringTokenizer st=new StringTokenizer(f1.getText(),"\n"); f2.clear(); int i=0; while(st.hasMoreTokens()){ f2.addElement(st.nextToken()); } return true; } boolean listChange(DefaultListModel dl,Object o1){ int index=dl.indexOf(o1); if(index!=-1){ dl.add(0,dl.remove(index)); return true; } else{ return false; } } boolean fileWrite(File f1,DefaultListModel dl,String st){ try{ BufferedReader br=new BufferedReader(new FileReader(f1)); String line; String sb=""; while((line=br.readLine())!=null){ sb+=line+"\n"; } br.close(); int ik=0,ist=0,id=st.length(),i; while(true){ ik=sb.indexOf(st,ist); if(ik==-1){ dl.addElement(sb.substring(ist,sb.length())); break; } dl.addElement(sb.substring(ist,ik)); ist=ik+id; } return true; } catch(NullPointerException ex){ return false; } catch(Exception ex){ System.out.println("boolean fileWrite(File f1,DefaultListModel dl,String s1)で、その他の例外"); ex.printStackTrace(); return false; } } /* boolean fileWrite(File f1,String[] ss){//**************************************** DefaultListModel d1=new DefaultListModel(); fileWrite(f1,d1); String[] ss1=new String[d1.size()]; ss=ss1; return true; } */ } class MyCellRenderer extends JLabel implements ListCellRenderer { Color c,c1,c2; public MyCellRenderer(Color co1,Color co2) { setOpaque(true); c1=co1; c2=co2; } public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) { setText(value.toString()); switch(index % 2){ case 0:c=c1; break; case 1:c=c2; break; } setBackground(c); setBorder(new EtchedBorder()); return this; } } public class Cont7{ static String spre="初期定型文\n"+"<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"+"\n"+ "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ja\">"+"\n"+ "<head>\n<title>ナイスjava研究所,研究帖6</title>\n</head>\n<body>\n<h1>研究帖6</h1>"+"\n"+ " <hr />"+"\n"+" <address>"+"\n"+" <a href=\"mailto:nice@f04.itscom.net\">作者へのメッセージ</a>"+"\n"+ " </address>"+"\n"+"</body>"+"\n"+"</html>"+"\n"+"<HTML>"+"\n"+"<HEAD>"+"\n"+ "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=x-sjis\">"+"\n"+ " <TITLE>研究課題 ナイスなパッケを作ろう</TITLE>"+"\n"+"</HEAD>"+"\n"+"<BODY BGCOLOR=\"#c0c0c0\">"+"\n"+ "<B><FONT FACE=\"MS 明朝\" LANG=\"JA\" SIZE=3><P ALIGN=\"JUSTIFY\">"+"\n"+ "研究課題 ナイスなパッケを作ろう。</P>"+"\n"+"</B><P ALIGN=\"JUSTIFY\"></P>"+"\n"+ "<P ALIGN=\"JUSTIFY\"><IMG SRC=\"nice.gif\" WIDTH=70 HEIGHT=56> "+"\n"+ "<IMG SRC=\"bb.gif\" WIDTH=70 HEIGHT=56></P>"+"\n"+ "<IMG SRC=\"wind.gif\" WIDTH=70 HEIGHT=56></P>"+"\n"; public static void main(String[] args){ Color[] cc= {Color.red,Color.green,Color.white,Color.yellow,Color.orange,Color.cyan,Color.lightGray, Color.pink,Color.magenta}; //Color.blue,Color.gray, Random r=new Random(); int ic1=r.nextInt(cc.length); int ic2=r.nextInt(cc.length); ListFrame li=new ListFrame(cc[ic1],cc[ic2]); Db.pp(cc[ic1].toString()+cc[ic2].toString()); li.setExtendedState(JFrame.MAXIMIZED_BOTH); } }
作ったアイコン****************************************************************
"iw.gif" "iwe.gif" "iwl.gif"1 "iwul.gif"