2015-10-15 69 views
0

我是一名专业PHP开发人员,也是一名学生。所以我有一个问题要问我在Java中持续进行的大学项目。Jframe内部列表,它将带您到其详细视图

首先让我解释一下我所处的情况,我正在使用JDBC在Java Swing中创建一个独立应用程序。该项目与网站类似。该项目将有四个模块(超级用户,公司,员工,&项目)。

当应用程序启动时,用户将看到登录页面。

Login Page

如果用户没有注册,他/她可以通过点击注册按钮进行注册。

有两种类型的用户“1”管理员和“2”员工。

管理员可以选择在成功登录后转到主页的管理员。

但员工只能访问前端。

Front End Page

所以我需要所有项目的列表。我也能做到这一点

但我的问题是,当用户点击该项目中的按钮上市

这当然会从数据库中动态生成!

有着各自不同的ID

?是否有可能看到项目的细节。就像在网站??

非常感谢您为我的问题提供宝贵的时刻! 我会非常感谢任何帮助,我被困在这个问题上的时间超过了 6天。我试过搜索每一个在互联网上,我找不到 任何答案。

希望你们将帮助

+0

*“所以我有一个问题要问我正在进行学院项目在Java中。” *是随机大写单词是很难读,像试图听一会儿嘟嘟someone someone的人,然后发出声音。请在句子的开头使用大写字母,单词I以及专用名称,如'ArrayList'或Oracle,但不能使用其他名称。 –

+0

当我再问另一个问题时,我会记住这一点。谢谢 –

回答

0

是否有可能看到一个项目的细节。就像在网站

是的。基本上,如果您使用类似BorderLayout的东西,则可以将JList放置到WEST的位置,并将详细面板放置到CENTER的位置。

当一个项目被选中,你可以填写详细信息查看与您想在看看How to use ListsHow to use BorderLayouts为出发点

0

没有人回答显示

开始的数据是我正在寻找! 我已经完成了该项目,并在这里就是答案

DbConnect con = null; 
     try { con = new DbConnect(); } 
     catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { e.printStackTrace(); } 

     // Retreiving Results 
     try { 
      ResultSet res = null; 
      res = con.selectQueryBig("select * from tbl_company where owner_id='"+User_Session.getSessionId()+"' ORDER BY id Desc"); 

      int i=1; 
      if (res!= null){ 
      while(res.next()){ 
       //Titles 
       PanelDynamic[i] = new JPanel(new WrapLayout(FlowLayout.LEFT,10,0)); 
       PanelDynamic[i].setPreferredSize(new Dimension(800,40)); 
       if (i%2 == 0) { 
        PanelDynamic[i].setBackground(new Color(255,255,255,255)); 
       } else { 
        PanelDynamic[i].setBackground(new Color(255,255,255,200)); 
       } 

       // Name Of Company 
       LabelDynamic[i] = new JLabel(res.getString("name")); 
       LabelDynamic[i].setHorizontalAlignment(SwingConstants.LEFT); 
       LabelDynamic[i].setPreferredSize(new Dimension(240,40)); 
       LabelDynamic[i].setForeground(new Color(0,0,0)); 

       // Created date 
       LabelDynamicB[i] = new JLabel(res.getString("created")); 
       LabelDynamicB[i].setHorizontalAlignment(SwingConstants.LEFT); 
       LabelDynamicB[i].setPreferredSize(new Dimension(170,40)); 
       LabelDynamicB[i].setForeground(new Color(0,0,0)); 

       // Created date 
       LabelDynamicC[i] = new JLabel(res.getString("updated")); 
       LabelDynamicC[i].setHorizontalAlignment(SwingConstants.LEFT); 
       LabelDynamicC[i].setPreferredSize(new Dimension(170,40)); 
       LabelDynamicC[i].setForeground(new Color(0,0,0)); 

       // Button For Read More 
       ButtonDynamic[i] = new JButton("Edit"); 
       ButtonDynamic[i].setHorizontalAlignment(SwingConstants.LEFT); 
       ButtonDynamic[i].setPreferredSize(new Dimension(100,40)); 
       ButtonDynamic[i].setBorderPainted(false); 
       ButtonDynamic[i].setFocusPainted(false); 
       ButtonDynamic[i].setBackground(new Color(255,255,255,0)); 
       ButtonDynamic[i].setForeground(new Color(0,0,0)); 
       ButtonDynamic[i].setIcon(EIco); 
       ButtonDynamic[i].setActionCommand(Integer.toString(res.getInt("id"))); 

       PanelDynamic[i].add(LabelDynamic[i]);// title 
       PanelDynamic[i].add(LabelDynamicB[i]);// Created 
       PanelDynamic[i].add(LabelDynamicC[i]);// Created 
       PanelDynamic[i].add(ButtonDynamic[i]);// Edit 

       panelBoxin.add(PanelDynamic[i]); 
       panelBoxin.revalidate(); 

       i+=1; 
      }} 
      res.close(); 
      ResLength = i; 
     } 
     catch (SQLException e) { e.printStackTrace(); } 

     // Closing Connection 
     try { con.release(); con.disconnect(); } 
     catch (SQLException e) {e.printStackTrace(); } 

我们真正需要做的是,我们要动态地生成按钮与动作命令=主键ID。

,我们必须写按钮动作在一个循环

// Dashboard Button Actions 
public class ListenerForCompany implements ActionListener { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
// Edit Button Array 
     for (int i=0; i< AdminViewObj.ResLength(); i++){ 
      if(e.getSource()==AdminViewObj.ButtonDynamic[i]){ 

       // Parsing id 
       Integer id =Integer.parseInt(AdminViewObj.ButtonDynamic[i].getActionCommand()); 

       // loading screen and thread 
       AdminViewObj.loadingView.setVisible(true); 
       new Thread(new Runnable(){ 
        @Override 
        public void run(){ 
         try { 

          ProjectManagement.CompanyAddEditView(id); 
          AdminViewObj.dispose(); 

          } 
         catch(Exception e) { 
          AdminViewObj.loadingView.setVisible(false); 
          AdminViewObj.ErrorMessage("Could not connect to server"); 
         } 
        } 

       }).start(); 

      }// end of for 
     } 
+0

带有自定义渲染器来显示POJO的JList会更简单 – MadProgrammer