- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从java gui获取startTime和endTime的值到数据库。
ComputerSeats 类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class SeatMonitoringDesign extends JFrame
{
public JLabel LStation, LID, LFirstName, LLastName, LTimeIn;
public JLabel[] Astation,Aid, Afirstname, Alastname, Atime;
public JRadioButton[] seat = new JRadioButton[10];
private String str = "";
private int station, occupiedSeatCounter;
private JLabel studNum, seatNum;
private ButtonGroup seatGroup = new ButtonGroup();
private boolean[] seatOccupied = new boolean[10];
private SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm:ss");
private JTextField studNumTF;
private JButton logIn, logOut;
private ButtonHandler logInB;
private ButtonHandler logOutB;
private ButtonHandler radioB;
public SeatMonitoringDesign()
{
studNum = new JLabel("Enter Your Student Number: ");
studNum.setLocation(30,20);
studNum.setSize(200,100);
studNumTF = new JTextField(7);
studNumTF.setLocation(50,80);
studNumTF.setSize(120,30);
seatNum = new JLabel("Station Numbers: ");
seatNum.setLocation(60,90);
seatNum.setSize(600,400);
setTitle("Computer Seat Registration");
Container pane = getContentPane();
pane.setLayout(null);
pane.add(studNum);
pane.add(studNumTF);
setSize(1130,500);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
int x=50,y=150;
for(int i=0 ; i<10 ; i++)
{
switch(i)
{
case 0: str = "1"; break;
case 1: str = "2"; break;
case 2: str = "3"; break;
case 3: str = "4"; break;
case 4: str = "5"; break;
case 5: str = "6"; break;
case 6: str = "7"; break;
case 7: str = "8"; break;
case 8: str = "9"; break;
case 9: str = "10"; break;
}
seat[i] = new JRadioButton(str);
seat[i].setSize(60,40);
seat[i].setLocation(x,y);
radioB = new ButtonHandler();
seat[i].addItemListener(radioB);
seat[i].setBackground(Color.green);
seatGroup.add(seat[i]);
pane.add(seat[i]);
x=110;
if((i+1)%2==0)
{
x=50;
y=y+30;
}
}
for(int i=0 ; i<10 ; i++)
{
seatOccupied[i] = false;
}
logIn = new JButton("Log In");
logIn.setSize(100,30);
logIn.setLocation(15,350);
logIn.setBackground(Color.orange);
logInB = new ButtonHandler();
logIn.addActionListener(logInB);
pane.add(logIn);
logOut = new JButton("Log Out");
logOut.setSize(100,30);
logOut.setLocation(125,350);
logOut.setBackground(Color.orange);
logOutB = new ButtonHandler();
logOut.addActionListener(logOutB);
pane.add(logOut);
LStation = new JLabel("Station #", SwingConstants.CENTER);
LStation.setSize(100,20);
LStation.setLocation(280,60);
pane.add(LStation);
LID = new JLabel("Student Number");
LID.setSize(100,20);
LID.setLocation(450,60);
pane.add(LID);
LFirstName = new JLabel("First Name");
LFirstName.setSize(100,20);
LFirstName.setLocation(630,60);
pane.add(LFirstName);
LLastName = new JLabel("Last Name");
LLastName.setSize(100,20);
LLastName.setLocation(810,60);
pane.add(LLastName);
LTimeIn = new JLabel("Time In");
LTimeIn.setSize(100,20);
LTimeIn.setLocation(990,60);
pane.add(LTimeIn);
Astation = new JLabel[10];
Aid = new JLabel[10];
Afirstname = new JLabel[10];
Alastname = new JLabel[10];
Atime = new JLabel[10];
y=85;
for(int i=0 ; i<10 ; i++)
{
switch(i)
{
case 0: str = "1"; break;
case 1: str = "2"; break;
case 2: str = "3"; break;
case 3: str = "4"; break;
case 4: str = "5"; break;
case 5: str = "6"; break;
case 6: str = "7"; break;
case 7: str = "8"; break;
case 8: str = "9"; break;
case 9: str = "10"; break;
}
Astation[i] = new JLabel(str, SwingConstants.CENTER);
Astation[i].setSize(100,30);
Astation[i].setLocation(280,y);
pane.add(Astation[i]);
Aid[i] = new JLabel("Vacant Station");
Aid[i].setSize(100,30);
Aid[i].setLocation(450,y);
pane.add(Aid[i]);
Afirstname[i] = new JLabel("---------");
Afirstname[i].setSize(100,30);
Afirstname[i].setLocation(630,y);
pane.add(Afirstname[i]);
Alastname[i] = new JLabel("---------");
Alastname[i].setSize(100,30);
Alastname[i].setLocation(810,y);
pane.add(Alastname[i]);
Atime[i] = new JLabel("00:00:00--");
Atime[i].setSize(100,30);
Atime[i].setLocation(990,y);
pane.add(Atime[i]);
y = y+30;
}
setVisible(true);
}
public class ButtonHandler implements ActionListener, ItemListener
{
public void itemStateChanged(ItemEvent e)
{
for(int i=0 ; i<10 ; i++)
{
if(e.getSource() == seat[i])
station = (i+1);
}
}
public void actionPerformed(ActionEvent e)
{
LogicalChecker lc = new LogicalChecker();
cobadatabase cb = new cobadatabase(studNumTF.getText());
String output;
Date now1 = new Date();
Date now2 = new Date();
//long secs = (now2.getTime() - now1.getTime()) / 1000;
//long diffSeconds = diff / 1000 % 60;
//long diffMinutes = diff / (60 * 1000) % 60;
// long diffHours = diff / (60 * 60 * 1000) % 60;
//long startTime = System.currentTimeMillis();
//long finishTime = System.currentTimeMillis();
//long elapsedTime = finishTime - startTime;
long diff = (now2.getTime() - now1.getTime());
cobadatabase cb2 = new cobadatabase(studNumTF.getText(),dateFormatter.format(now1),dateFormatter.format(now2), diff);
if("Log In".equals(e.getActionCommand()))
{
if(station == 0)
{
lc.StationCheck(0);
}
else if(seatOccupied[station-1] == true)
{
lc.StationCheck(2);
}
else if(!studNumTF.getText().equals(cb.getStudentNumber()))
{
studNumTF.setText("");
lc.StationCheck(3);
}
else
{
seatOccupied[station-1] = true;
Aid[station-1].setText(cb.getStudentNumber());
Afirstname[station-1].setText(cb.getFirstName());
Alastname[station-1].setText(cb.getLastName());
seat[station-1].setBackground(Color.red);
Atime[station-1].setText(dateFormatter.format(now1));
occupiedSeatCounter++;
}
}
if("Log Out".equals(e.getActionCommand()))
{
if(station == 0)
{
lc.StationCheck(0);
}
else if(Aid[station-1].getText() == "Vacant Station")
{
lc.StationCheck(1);
}
else
{
Aid[station-1].setText("Vacant Station");
Afirstname[station-1].setText("---------");
Alastname[station-1].setText("---------");
seat[station-1].setBackground(Color.green);
Atime[station-1].setText("00:00:00");
seatOccupied[station-1] = false;
studNumTF.setText("");
output = "Time Check-Out "+dateFormatter.format(now2)+"\n Total Time: " +diff;
JOptionPane.showMessageDialog(null,output, "Check- Out.",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
}
coba数据库类
import java.sql.*;
import java.util.*;
import java.text.*;
public class cobadatabase{
protected String sn,fn,ln,srt, sn2, srt2, et;
protected Long tt;
private Connection conn;
private PreparedStatement st;
public cobadatabase(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/studentrecords","root","");
}
catch(Exception e){}
}
public cobadatabase(String sn2, String str2, String et, long tt)
{
this();
try
{
st = conn.prepareStatement("Insert into time(StudentNumber,StartTime,EndTime,TotalTime) values(?,?,?,?)");
st.setString(1,sn2);
st.setString(2,str2);
st.setString(3,et);
st.setLong(4,tt);
st.executeUpdate();
}
catch(Exception e){}
}
public cobadatabase(String StudentNumber)
{
this();
try{
st = conn.prepareStatement("SELECT * FROM student WHERE StudentNumber=?");
st.setString(1,StudentNumber);
ResultSet rs = st.executeQuery();
while (rs.next())
{
this.sn = rs.getString(1);
this.fn = rs.getString(2);
this.ln = rs.getString(3);
this.srt = rs.getString(4);
SimpleDateFormat ft = new SimpleDateFormat("kk:mm:ss");
ft.format(rs.getTime("TotalTime").getTime());
}
}
catch(Exception e){}
}
public cobadatabase(String StudentNumber2, String Start, String End)
{
this();
try{
st = conn.prepareStatement("SELECT * FROM time WHERE StudentNumber2=?");
st.setString(2,Start);
st.setString(3,End);
ResultSet rs = st.executeQuery();
while (rs.next())
{
this.sn2 = rs.getString(1);
this.srt2 = rs.getString(2);
this.et = rs.getString(3);
this.tt = rs.getLong(4);
}
}
catch(Exception e){}
}
public String getFirstName(){
return fn;
}
public String getLastName(){
return ln;
}
public String getStudentNumber(){
return sn;
}
public String getStart(){
return srt2;
}
public String getEnd(){
return et;
}
}
这里的问题是,当单击登录按钮时,开始时间同时显示在我的数据库中的 startTime 和 endTime 列上。单击注销按钮时,会在数据库中创建另一行,其中包含 startTime 和 endTime 列上的 endTime。我想知道为什么会发生这种情况。
最佳答案
看下面的网址 http://www.mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/在应用程序的开头和结尾使用它。
如果您正在测量应用程序执行的时间,我认为上述并不是最好的。在这种情况下,请尝试以下操作
import java.util.*;
public class VectorTest
{
Vector v = new Vector();
public VectorTest()
{
long startTime = System.currentTimeMillis(); // Get the start Time
long endTime = 0;
System.out.println( startTime);
for(int i=0;i<100000;i++)
{
v.add(i);
}
for(int i=0;i<v.size();i++)
{
System.out.println(v.get(i));
}
endTime = System.currentTimeMillis(); //Get the end Time
System.out.println(endTime);
System.out.println("Difference in mili seconds: "+ (endTime-startTime)); //Print the difference in mili seconds
System.out.println("Differencce in Seconds: "+ (endTime-startTime)/1000); // Print the difference in seconds
}
public static void main(String[]args)
{
new VectorTest();
}
}
良好编程实践的额外建议
查看第三个重载的“CodeBase”构造函数。您在 SQL 查询中有 1 个参数,但尝试在程序中设置 2 个参数,即使索引 2 和 3 无效
关闭finally block 内的连接
不要将 catch() 方法留空。打印堆栈跟踪
不要在任何地方使用相同的PreparedStament。将它们创建为局部变量而不是全局变量。有时,数据库中的自动连接关闭方法会出现延迟。在这种情况下,您的程序将以意想不到的方式运行。如果您在本地声明它们,则一旦方法完成,变量就会消失
关于java - java中获取开始时间和结束时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775418/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!