我是一名专业的PHP开发人员,也是一名学生。所以我有一个问题要问我在Java中正在进行的大学项目。
首先让我解释一下我所处的情况,我正在使用JDBC在Java Swing中创建一个独立的应用程序。该项目类似于一个网站。该项目将有四个模块(SuperUser,Company,Employee,& Project)。
当应用程序启动时,用户将看到登录页面。
如果用户未注册,他/她可以通过单击注册按钮进行注册。
有两种类型的用户" 1"管理员和" 2"雇员。
管理员可以选择在成功登录后进入主页管理员。
但员工只能进入前端。
所以我需要一份所有项目的清单。我也可以这样做
但问题是用户何时点击项目列表中的按钮
当然,这将从数据库动态生成!!
与他们不同的身份
??是否可以看到项目的细节。就像在网站上一样?
非常感谢你为我的问题提供宝贵的时刻! 我真的很感激任何帮助,我不止这个问题 6天。我试过搜索互联网上的每一个地方,我都找不到 任何答案。
希望你们能帮忙
答案 0 :(得分:0)
是否可以查看项目的详细信息。就像网站一样
是。基本上,如果您使用BorderLayout
之类的内容,则可以将JList
放置到WEST
位置,将详细信息面板放置到CENTER
位置。
选择项目后,您可以使用要显示的数据填充详细信息视图
首先看一下How to use Lists和How to use BorderLayouts作为起点
答案 1 :(得分: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(); }
我们真正需要做的是,我们必须使用action commands = primary key 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
}