第10章 Swing UI设计课后题

没事就练练。。。把代码和结果都贴贴。都是很简单的东西。。。

Code:
  1. packagech10;
  2. importjava.awt.BorderLayout;
  3. importjava.awt.Dimension;
  4. importjava.awt.FlowLayout;
  5. importjava.awt.event.ActionEvent;
  6. importjava.awt.event.ActionListener;
  7. importjava.io.BufferedReader;
  8. importjava.io.File;
  9. importjava.io.FileNotFoundException;
  10. importjava.io.FileReader;
  11. importjava.io.IOException;
  12. importjavax.swing.JButton;
  13. importjavax.swing.JFrame;
  14. importjavax.swing.JMenu;
  15. importjavax.swing.JMenuBar;
  16. importjavax.swing.JMenuItem;
  17. importjavax.swing.JScrollPane;
  18. importjavax.swing.JTextArea;
  19. importjavax.swing.JTextField;
  20. publicclassCh10AllKey{
  21. publicstaticvoidmain(String[]args){
  22. newAllKeyUI();
  23. }
  24. }
  25. classAllKeyUIimplementsActionListener{
  26. privateJButtonjb1,jb2,jb4;
  27. privateJFramejf;
  28. publicAllKeyUI(){
  29. jf=newJFrame("第十章答案示例集");
  30. jf.setBounds(200,200,600,100);
  31. jf.setVisible(true);
  32. jb1=newJButton("第一题示例");
  33. jb2=newJButton("第二题示例");
  34. jb4=newJButton("第四题示例");
  35. jb1.addActionListener(this);
  36. jb2.addActionListener(this);
  37. jb4.addActionListener(this);
  38. jf.setLayout(newFlowLayout());
  39. jf.add(jb1);
  40. jf.add(jb2);
  41. jf.add(jb4);
  42. jf.validate();
  43. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  44. }
  45. publicvoidactionPerformed(ActionEvente){
  46. if(e.getSource()==jb1){
  47. newKey01();
  48. }elseif(e.getSource()==jb2){
  49. newKey02();
  50. }elseif(e.getSource()==jb4){
  51. newKey04();
  52. }
  53. }
  54. }
  55. //1.编写一个应用程序,在应用程序中有一个按钮和一个文本框,当单击按钮时,文本框
  56. //显示按钮的名字。
  57. classKey01{
  58. privateJFramejf;
  59. privateJButtonjb;
  60. privateJTextFieldjt;
  61. //构造函数,初始化界面。
  62. publicKey01(){
  63. jf=newJFrame("第十章第一题");
  64. jf.setBounds(200,200,400,100);
  65. jf.setVisible(true);
  66. jf.setLayout(newFlowLayout());
  67. jt=newJTextField("");
  68. jt.setPreferredSize(newDimension(100,30));
  69. jb=newJButton("我是按钮");
  70. jb.addActionListener(newActionListener(){//单击在文本框显示按钮的名字。
  71. publicvoidactionPerformed(ActionEvente1){
  72. jt.setText(jb.getText());
  73. }
  74. });
  75. jf.add(jt);
  76. jf.add(jb);
  77. jf.validate();
  78. //jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  79. jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  80. }
  81. }
  82. //2.编写一个有两个文本框和一个按钮的应用程序,在一个文本框输入一个字符串按回车键或单击按钮,
  83. //另一个文本框都是显示字符串中每个字符在Unicode表中的顺序。
  84. classKey02implementsActionListener{
  85. privateJFramejf;
  86. privateJButtonjb;
  87. privateJTextFieldjt1,jt2;
  88. //构造函数,初始化界面。
  89. publicKey02(){
  90. jf=newJFrame("第十章第二题");
  91. jf.setBounds(200,200,800,110);
  92. jf.setVisible(true);
  93. jf.setLayout(newFlowLayout());
  94. jt1=newJTextField("");
  95. jt1.setPreferredSize(newDimension(150,30));
  96. jt2=newJTextField("");
  97. jt2.setPreferredSize(newDimension(600,30));
  98. jb=newJButton("测试");
  99. /*jb.addActionListener(newActionListener(){//单击在文本框显示按钮的名字。
  100. publicvoidactionPerformed(ActionEvente1){
  101. char[]chars=jt1.getText().trim().toCharArray();
  102. Stringresult="";
  103. for(inti=0;i<chars.length;i++){
  104. Stringtemp=""+(int)chars[i]+"";
  105. result=result.concat(temp);
  106. }
  107. if(!result.equals("")){
  108. System.out.println(result);
  109. jt2.setText(result);
  110. }
  111. }
  112. });*/
  113. jb.addActionListener(this);
  114. jt1.addActionListener(this);
  115. jf.add(jt1);
  116. jf.add(jt2);
  117. jf.add(jb);
  118. jf.validate();
  119. //jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  120. jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  121. }
  122. publicvoidactionPerformed(ActionEvente1){
  123. if(e1.getSource()==jb||e1.getSource()==jt1){
  124. char[]chars=jt1.getText().trim().toCharArray();
  125. Stringresult="";
  126. for(inti=0;i<chars.length;i++){
  127. Stringtemp=""+(int)chars[i]+"";
  128. result=result.concat(temp);
  129. }
  130. if(!result.equals("")){
  131. System.out.println(result);
  132. jt2.setText(result);
  133. }
  134. }
  135. }
  136. }
  137. //4.编写一个应用程序,要求有一个含有菜单的窗口,在窗口中有文本区组建。菜单有“打开文件”的菜单项,
  138. //当单击该菜单项时,使用输入流将一个名字为“hello.txt”文件的内容读入到文本中。
  139. classKey04implementsActionListener{
  140. privateJMenuBarmenuBar;
  141. privateJMenumenu;
  142. privateJMenuItemmenuItem;
  143. privateJFramejf;
  144. privateJTextAreatextArea;
  145. publicKey04(){
  146. jf=newJFrame("第十章第4题");
  147. jf.setBounds(200,200,400,450);
  148. jf.setVisible(true);
  149. menuBar=newJMenuBar();
  150. menu=newJMenu("编辑");
  151. menuItem=newJMenuItem("打开文件");
  152. menuItem.addActionListener(this);
  153. menu.add(menuItem);
  154. menuBar.add(menu);
  155. jf.setJMenuBar(menuBar);
  156. textArea=newJTextArea();
  157. jf.add(newJScrollPane(textArea),BorderLayout.CENTER);
  158. jf.validate();
  159. //jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  160. jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  161. }
  162. publicvoidactionPerformed(ActionEvente){
  163. Filereadfile=newFile("hello.txt");
  164. textArea.setText(null);
  165. try{
  166. FileReaderfileReader=newFileReader(readfile);
  167. BufferedReaderbr=newBufferedReader(fileReader);
  168. Strings="";
  169. inti=0;//如果是第一行
  170. while((s=br.readLine())!=null){
  171. if(i==0){
  172. textArea.append(s);
  173. i=1;
  174. }else{
  175. textArea.append("/n"+s);
  176. }
  177. }
  178. fileReader.close();
  179. br.close();
  180. }catch(FileNotFoundExceptione1){
  181. e1.printStackTrace();
  182. }catch(IOExceptione2){
  183. e2.printStackTrace();
  184. }
  185. }
  186. }

你可能感兴趣的:(UI,swing)