Automatically populate jTextField with NetBeans

I created jFrame using NetBeans, which opens when a button is clicked on the main GUI to add a new entry. I want to know if there is a way to provide a unique identifier for each new record that shows when the jFrame form is being displayed. Along with a unique id, I also want to have a createdOn text field that is automatically populated with the current date.

0
source share
1 answer

For the duration of the JVM executing the program, hashCode() may serve as a unique identifier; UUID is an alternative. The example shows a new Date each time a button is pressed.

Appendix: upon closer inspection, the hashCode() method of java.util.Date may not be unique. In particular, "It is not required that if two objects are unequal according to the equals method (java.lang.Object), then calling the hashCode method for each of the two objects must produce different integer results." You can use long from getTime() taking into account the resolution in milliseconds.

alt text

 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; /** @see http://stackoverflow.com/questions/4128432 */ public class AddTest extends JPanel { private static final DateFormat format = new SimpleDateFormat("yyyy-MMM-dd hh:mm:ss.SSS"); private final List<TestPanel> panels = new ArrayList<TestPanel>(); public AddTest() { this.setLayout(new GridLayout(0, 1)); TestPanel tp = new TestPanel(); panels.add(tp); this.add(tp); this.validate(); Dimension d = tp.getPreferredSize(); this.setPreferredSize(new Dimension(d.width, d.height * 8)); } private static class TestPanel extends JPanel { public TestPanel() { Date date = new Date(); this.add(new JLabel(String.valueOf(date.hashCode()))); this.add(new JTextField(format.format(date))); } } private void display() { JFrame f = new JFrame("AddTest"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(this, BorderLayout.CENTER); JButton button = new JButton(new AbstractAction("New") { @Override public void actionPerformed(ActionEvent e) { TestPanel tp = new TestPanel(); panels.add(tp); AddTest.this.add(tp); AddTest.this.revalidate(); AddTest.this.repaint(); // may be required } }); f.add(button, BorderLayout.SOUTH); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new AddTest().display(); } }); } } 
+3
source

All Articles