鱼C论坛

 找回密码
 立即注册
查看: 3327|回复: 5

[已解决]java弹出窗口的问题

[复制链接]
发表于 2017-5-7 19:14:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新手上路,请多关照。

在做Java中的数据库部分的习题,如何将要打印出来的表放到弹出窗口呢?自己试了好多种方法都失败了,只能请求大神帮忙了。下面有习题的要求和自己写的拙劣的代码,还希望大神不怕麻烦,指点一下。

窗口代码:
  1. package com.cdd.frame;

  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Frame;
  5. import java.awt.GridLayout;
  6. import java.awt.TextField;
  7. import java.awt.Toolkit;
  8. import java.awt.event.MouseAdapter;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.WindowAdapter;
  11. import java.awt.event.WindowEvent;

  12. import javax.swing.JButton;
  13. import javax.swing.JComboBox;
  14. import javax.swing.JLabel;
  15. import javax.swing.JPanel;

  16. import com.cdd.Newframe.Newframe;
  17. import com.cdd.student.Student;
  18. import com.cdd.zsgc.Delete;
  19. import com.cdd.zsgc.Insert;
  20. import com.cdd.zsgc.Select1;
  21. import com.cdd.zsgc.Select2;
  22. import com.cdd.zsgc.Update;

  23. public class Frame1 {

  24.         public static void main(String[] args) {
  25.                 Frame2 A = new Frame2();
  26.                 A.visible_Frame2();
  27.         }

  28. }

  29. /**
  30. *
  31. 窗口设计及实现按钮的功能
  32. */

  33. class Frame2 extends Frame {

  34.         /**
  35.          *
  36.          */
  37.         private static final long serialVersionUID = 1L;

  38.         JPanel jp1 = new JPanel();
  39.         JPanel jp2 = new JPanel();
  40.         JPanel jp3 = new JPanel();
  41.         JPanel jp4 = new JPanel();
  42.         JPanel jp5 = new JPanel();
  43.         JPanel jp6 = new JPanel();
  44.         JPanel jp7 = new JPanel();
  45.         JPanel jp8 = new JPanel();
  46.         JPanel jp9 = new JPanel();
  47.         JPanel jp10 = new JPanel();

  48.         TextField te1 = new TextField(10);
  49.         TextField te2 = new TextField(3);
  50.         TextField te3 = new TextField(20);
  51.         TextField te4 = new TextField(10);
  52.         TextField te5 = new TextField(10);
  53.         TextField te6 = new TextField(10);

  54.         JComboBox<String> jco1 = new JComboBox<String>();

  55.         JButton bu1 = new JButton("添加");
  56.         JButton bu2 = new JButton("取消");
  57.         JButton bu3 = new JButton("删除");
  58.         JButton bu4 = new JButton("取消");
  59.         JButton bu5 = new JButton("更新");
  60.         JButton bu6 = new JButton("取消");
  61.         JButton bu7 = new JButton("查询全部");
  62.         JButton bu8 = new JButton("条件查询");
  63.         JButton bu9 = new JButton("取消");

  64.         JLabel lab1 = new JLabel("name:");
  65.         JLabel lab2 = new JLabel("sex:");
  66.         JLabel lab3 = new JLabel("age:");
  67.         JLabel lab4 = new JLabel("college:");
  68.         JLabel lab5 = new JLabel("请输入你要删除信息人的名字:  如:张三");
  69.         JLabel lab6 = new JLabel("请输入你要更新的信息及信息的所属学生:  如:sex='男' 张三   age=18  赵四");
  70.         JLabel lab7 = new JLabel("全部查询及查询age>=20的学生信息");

  71.         public void visible_Frame2() {
  72.                 setSize(number.b2, number.b1);
  73.                 setTitle("数据库编程");
  74.                 setResizable(true);
  75.                 setVisible(true);
  76.                
  77.                 Toolkit c1 = getToolkit();
  78.                 Dimension c2 = c1.getScreenSize();
  79.                 int c3 = c2.width;
  80.                 int c4 = c2.height;
  81.                 setLocation((c3 - number.b1) / 2, (c4 - number.b2) / 2);

  82.                 setLayout(new GridLayout(10, 1));

  83.                 addWindowListener(new WindowAdapter() {

  84.                         @Override
  85.                         public void windowClosing(WindowEvent e) {
  86.                                 System.exit(0);
  87.                         }

  88.                 });
  89.                
  90.                 jco1.addItem("男          ");
  91.                 jco1.addItem("女         ");
  92.                 add(jp1); jp1.add(lab1);jp1.add(te1);jp1.setBackground(Color.CYAN);
  93.                 add(jp2); jp2.add(lab2);jp2.add(jco1);jp2.setBackground(Color.CYAN);
  94.                 add(jp3); jp3.add(lab3);jp3.add(te2);jp3.setBackground(Color.CYAN);
  95.                 add(jp4); jp4.add(lab4);jp4.add(te3);jp4.setBackground(Color.CYAN);
  96.                 add(jp5); jp5.add(bu1);jp5.add(bu2);jp5.setBackground(Color.CYAN);
  97.                 add(jp6); jp6.add(lab5);jp6.add(te4);jp6.setBackground(Color.lightGray);
  98.                 add(jp7); jp7.add(bu3);jp7.add(bu4);jp7.setBackground(Color.lightGray);
  99.                 add(jp8); jp8.add(lab6);jp8.add(te5);jp8.add(te6);jp8.setBackground(Color.orange);
  100.                 add(jp9); jp9.add(bu5);jp9.add(bu6);jp9.setBackground(Color.orange);
  101.                 add(jp10);jp10.add(lab7);jp10.add(bu7);jp10.add(bu8);
  102.                 jp10.add(bu9);jp10.setBackground(Color.pink);

  103.                 // 下面实现按钮的功能
  104.                 bu1.addMouseListener(new MouseAdapter() {

  105.                         @Override
  106.                         public void mouseClicked(MouseEvent e) {
  107.                                 Student student = new Student();
  108.                                 student.setName(te1.getText());
  109.                                 student.setAge(Integer.parseInt(te2.getText()));
  110.                                 student.setSex((String) jco1.getSelectedItem());//getSelectedItem()返回JComboBox()中的
  111.                                 //参数,以对象的形式返回
  112.                                 student.setCollege(te3.getText());
  113.                                 Insert insert = new Insert();
  114.                                 insert.Insert_info(student);
  115.                         }

  116.                 });
  117.                 bu2.addMouseListener(new MouseAdapter() {

  118.                         @Override
  119.                         public void mouseClicked(MouseEvent e) {
  120.                                 System.exit(0);
  121.                         }

  122.                 });
  123.                 bu3.addMouseListener(new MouseAdapter() {

  124.                         @Override
  125.                         public void mouseClicked(MouseEvent e) {
  126.                                 Student student=new Student();
  127.                                 student.setName(te4.getText());
  128.                                 Delete  delete=new Delete();
  129.                                 delete.Delete_info(student);
  130.                                  
  131.                         }

  132.                 });
  133.                 bu4.addMouseListener(new MouseAdapter() {

  134.                         @Override
  135.                         public void mouseClicked(MouseEvent e) {
  136.                                 System.exit(0);
  137.                         }

  138.                 });
  139.                 bu5.addMouseListener(new MouseAdapter() {

  140.                         @Override
  141.                         public void mouseClicked(MouseEvent e) {
  142.                                 String set_info=te5.getText();
  143.                                 String name=te6.getText();
  144.                                 Update update=new Update();
  145.                                 update.Updete_info(set_info, name);
  146.                                  
  147.                         }

  148.                 });
  149.                 bu6.addMouseListener(new MouseAdapter() {

  150.                         @Override
  151.                         public void mouseClicked(MouseEvent e) {
  152.                                 System.exit(0);
  153.                         }

  154.                 });
  155.                 bu7.addMouseListener(new MouseAdapter() {

  156.                         @Override
  157.                         public void mouseClicked(MouseEvent e) {
  158.                                 Newframe newframe=new Newframe();
  159.                                 newframe.Visible_new();
  160.                                  Select1 selete= new Select1();
  161.                                  selete.Select1_info();
  162.                         }

  163.                 });
  164.                 bu8.addMouseListener(new MouseAdapter() {

  165.                         @Override
  166.                         public void mouseClicked(MouseEvent e) {
  167.                                  Select2 selete2= new Select2();
  168.                                  selete2.Select2_info();
  169.                         }

  170.                 });
  171.                 bu9.addMouseListener(new MouseAdapter() {

  172.                         @Override
  173.                         public void mouseClicked(MouseEvent e) {
  174.                                 System.exit(0);
  175.                         }

  176.                 });

  177.         }

  178. }

  179. class number {
  180.         final static int b1 = 700;
  181.         final static int b2 = 700;
  182. }
复制代码


数据库驱动链接:

  1. package com.cdd.jdbc;

  2. import java.sql.*;

  3. public   class GetConn {
  4.         public  Connection conn = null; // 创建Connection对象
  5.         // 获取数据库连接方法
  6.         public Connection getConnection() {
  7.                 try {
  8.                         Class.forName("com.mysql.jdbc.Driver"); // 加载数据库驱动
  9.                         String url = "jdbc:mysql://127.0.0.1:3306/test";
  10.                         String user = "root";
  11.                         String passWord = "123456";
  12.                         conn = DriverManager.getConnection(
  13.                                         url, user, passWord);
  14.                         // getConnection()方法参数分别指定连接数据库的URL、用户名和密码
  15.                         if (conn != null) {
  16.                                 System.out.println("数据库连接成功");
  17.                         }
  18.                 } catch (Exception e) {
  19.                         e.printStackTrace();
  20.                 }// 异常处理
  21.                 return conn;// 返回Connection对象
  22.         }
  23. }
复制代码


新窗口设计代码:
  1. package com.cdd.Newframe;

  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.Frame;
  5. import java.awt.GridLayout;
  6. import java.awt.TextArea;
  7. import java.awt.Toolkit;
  8. import java.awt.event.WindowAdapter;
  9. import java.awt.event.WindowEvent;

  10. /**
  11. * 弹出窗口的设计
  12. */
  13. public class Newframe extends Frame {

  14.         /**
  15.          *
  16.          */
  17.         private static final long serialVersionUID = 1L;

  18.         TextArea A1=new TextArea(10,10);
  19.         TextArea A2=new TextArea(10,10);
  20.        
  21.         public void Visible_new(){
  22.                 setSize(number1.b2, number1.b1);
  23.                 setTitle("数据库编程");
  24.                 setResizable(true);
  25.                 setVisible(true);
  26.                
  27.                 Toolkit c1 = getToolkit();
  28.                 Dimension c2 = c1.getScreenSize();
  29.                 int c3 = c2.width;
  30.                 int c4 = c2.height;
  31.                 setLocation((c3 - number1.b1) / 2, (c4 - number1.b2) / 2);

  32.                 setLayout(new GridLayout(2, 1));

  33.                 addWindowListener(new WindowAdapter() {

  34.                         @Override
  35.                         public void windowClosing(WindowEvent e) {
  36.                                 System.exit(0);
  37.                         }

  38.                 });
  39.                 add(A1);add(A2);
  40.                  A1.setFont(new Font("微软雅黑",Font.PLAIN,20));
  41.                  A2.setFont(new Font("微软雅黑",Font.PLAIN,20));
  42.                  
  43.                  
  44.                   
  45.                  
  46.         }

  47. }
  48. class number1 {
  49.         final static int b1 = 600;
  50.         final static int b2 = 600;
  51. }

复制代码


表查询代码:

  1. package com.cdd.zsgc;

  2. import java.sql.Connection;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.Statement;

  6. import com.cdd.jdbc.GetConn;

  7. public class Select1 {

  8.         GetConn getconn = new GetConn();
  9.         Connection conn = getconn.getConnection();

  10.         public void Select1_info() {
  11.                 String sql = "select *from student2";
  12.                 try {
  13.                         Statement statement = conn.createStatement();
  14.                         ResultSet resultset = statement.executeQuery(sql);
  15.                         while (resultset.next()) {
  16.                                 String name = resultset.getString("name");
  17.                                 String sex = resultset.getString("sex");
  18.                                 int age = resultset.getInt("age");
  19.                                 String college = resultset.getString("college");
  20.                                 System.out.println("name: " + name + "  sex: " + sex
  21.                                                 + "  age: " + age + "  college: " + college);//要打印到新窗口

  22.                         }

  23.                 } catch (SQLException e) {
  24.                         // TODO Auto-generated catch block
  25.                         e.printStackTrace();
  26.                 }

  27.         }

  28. }
复制代码



其他功能的代码没有发,感觉会更乱,麻烦大神了。
最佳答案
2017-5-8 09:43:43
Clown10101010 发表于 2017-5-7 19:17
定义了太多的类和方法,全部封起来了,大神该怎么办呀?

在 select1.java 文件中,我将 Select1_info() 的 void 返回值改为了 String,添加如下语句:

0.png

我们再返回到 Newframe.java 这个文件中,我在这里面加了一个方法

1.png

该方法作用是设置 TextArea 中文本的内容,调用其 setText(String s) 方法,传入参数类型为 String

,我们再返回到 Frame1.java 这个文件中,在 bu7 这个按扭单击事件代码处我添加如下语句:

2.png

将 Select1_info() 方法的返回值作为 setTextArea() 方法的参数,然后再传到 setText() 方法中,从而将

打印出来的表放到了弹出的窗口中。

3.png

这里还有一个问题,我想留给你自已解决,思路我都已经在上面说的很清楚了,什么问题呢?当数据库这个

表中存在多条数据时,我上面这个方法只能输出表最后一条,因为覆盖了,正如上面鱼油所说,可以用集合来

保存返回的的值,然后一次性将其添加到 TextArea 里。

习题要求.txt

922 Bytes, 下载次数: 1

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-5-7 19:17:11 | 显示全部楼层
定义了太多的类和方法,全部封起来了,大神该怎么办呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-7 22:06:32 | 显示全部楼层
在数据库层将表中的值取出做一个封装,add到一个集合中,然后在控制层调用这个集合,放到你的视图上
个人思路,并不会java GUI
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 09:43:43 | 显示全部楼层    本楼为最佳答案   
Clown10101010 发表于 2017-5-7 19:17
定义了太多的类和方法,全部封起来了,大神该怎么办呀?

在 select1.java 文件中,我将 Select1_info() 的 void 返回值改为了 String,添加如下语句:

0.png

我们再返回到 Newframe.java 这个文件中,我在这里面加了一个方法

1.png

该方法作用是设置 TextArea 中文本的内容,调用其 setText(String s) 方法,传入参数类型为 String

,我们再返回到 Frame1.java 这个文件中,在 bu7 这个按扭单击事件代码处我添加如下语句:

2.png

将 Select1_info() 方法的返回值作为 setTextArea() 方法的参数,然后再传到 setText() 方法中,从而将

打印出来的表放到了弹出的窗口中。

3.png

这里还有一个问题,我想留给你自已解决,思路我都已经在上面说的很清楚了,什么问题呢?当数据库这个

表中存在多条数据时,我上面这个方法只能输出表最后一条,因为覆盖了,正如上面鱼油所说,可以用集合来

保存返回的的值,然后一次性将其添加到 TextArea 里。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 11:28:36 | 显示全部楼层
zzzz76 发表于 2017-5-7 22:06
在数据库层将表中的值取出做一个封装,add到一个集合中,然后在控制层调用这个集合,放到你的视图上
个人 ...

感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-9 23:12:09 From FishC Mobile | 显示全部楼层
Clown10101010 发表于 2017-5-8 11:28
感谢

一起加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 22:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表