Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;
public class JTableDecimalDemo extends JFrame {
private JTable table;
//RegEx Pattern für Dezimalzahlen
private Pattern DECIMAL_PATTERN = Pattern.compile("[+-]?\\d+.\\d+");
//RegEx Pattern für Integerzahlen
private Pattern INTEGER_PATTERN = Pattern.compile("[+-]?\\d+");
public JTableDecimalDemo() {
super("JTableDecimalDemo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
table = new JTable(3, 3);
final TableColumn clm = table.getColumnModel().getColumn(0);
clm.setCellEditor(new DefaultCellEditor(new JTextField() {
{
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = getText();
Matcher matcher = INTEGER_PATTERN.matcher(text);
boolean match = false;
//Wenn das Integer Muster matcht ... .0 anhängen
if (matcher.matches()) {
match = true;
text += ".0";
}
text = text.replace(',', '.');
matcher = DECIMAL_PATTERN.matcher(text);
//Wenn das Dezimal Muster matcht ... ok
if (matcher.matches()) {
match = true;
}
//Wenn gematcht dann ändere den Wert im TableModel
if (match) {
table.getModel().setValueAt(
text,
table.getSelectedRow(),
table.getSelectedColumn());
} else {
//Andernfalls Zeig eine Fehlermeldung ...
JOptionPane.showMessageDialog(
null,
"Nur nummerische Werte erlaubt!",
"Fehler",
JOptionPane.ERROR_MESSAGE);
}
}
});
}
}));
getContentPane().add(table);
pack();
setVisible(true);
}
public static void main(String[] args) {
new JTableDecimalDemo();
}
}