Hey alle zusammen, stehe hier vor einem Problem...
Bin dabei ein Programm zu schreiben, welches überprüft, ob man sich mit einer Datenbank verbinden kann oder nicht.
Das Programm erfüllt seinen Zweck und funktioniert soweit auch.
Jetzt wollte ich diese Datenbanken auch speichern:
Man gibt die Daten der Datenbank ein und klickt dann auf den Button "Save DB".
Dann soll ein JMenuItem mit dem Namen DB1 erstellt werden.
Klickt man dann auf dieses Item sollen die Textfelder für die Daten mit den gespeicherten Daten befüllt werden.
Man soll bis zu 5 Items hinzufügen können, dabei erhöht sich der Name des Items um 1. Sprich: Erste Datenbank: DB1, zweite Datenbank: DB2 usw.
JMenu ist erstellt aber wie wird per Button ein MenuItem erstellt, welches die Daten der Textfelder enthält?
In Zeile 276 ist der ActionListener für den Button.
Hier mal der Code:
Da ich noch nicht wirklich fortgeschritten bin kann es durchaus sein, dass er Code unübersichtlich und nicht optimal geschrieben ist
Ich hoffe ihr könnt mir dabei helfen
Viele Grüße
Mike
Bin dabei ein Programm zu schreiben, welches überprüft, ob man sich mit einer Datenbank verbinden kann oder nicht.
Das Programm erfüllt seinen Zweck und funktioniert soweit auch.
Jetzt wollte ich diese Datenbanken auch speichern:
Man gibt die Daten der Datenbank ein und klickt dann auf den Button "Save DB".
Dann soll ein JMenuItem mit dem Namen DB1 erstellt werden.
Klickt man dann auf dieses Item sollen die Textfelder für die Daten mit den gespeicherten Daten befüllt werden.
Man soll bis zu 5 Items hinzufügen können, dabei erhöht sich der Name des Items um 1. Sprich: Erste Datenbank: DB1, zweite Datenbank: DB2 usw.
JMenu ist erstellt aber wie wird per Button ein MenuItem erstellt, welches die Daten der Textfelder enthält?
In Zeile 276 ist der ActionListener für den Button.
Hier mal der Code:
Java:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JPasswordField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.Color;
import java.awt.MenuBar;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JPopupMenu;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
public class DB_Status_Check {
private JFrame frmDbStatusCheck;
private JTextField txtIpport;
private JTextField textField_1;
private JPasswordField passwordField;
private Connection con;
private JTextField textField_2;
private String username;
private String pw;
private String db;
private String ip;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DB_Status_Check window = new DB_Status_Check();
window.frmDbStatusCheck.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public DB_Status_Check() {
initialize();
}
@SuppressWarnings("deprecation")
private void initialize() {
frmDbStatusCheck = new JFrame();
frmDbStatusCheck.setResizable(false);
frmDbStatusCheck.setTitle("DB Connection Test");
frmDbStatusCheck.setBounds(100, 100, 313, 229);
frmDbStatusCheck.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel lblIp = new JLabel("IP:");
JLabel lblUsername = new JLabel("Username:");
JLabel lblPassword = new JLabel("Password:");
txtIpport = new JTextField();
txtIpport.setText("IP:Port");
txtIpport.setColumns(10);
textField_1 = new JTextField();
textField_1.setColumns(10);
passwordField = new JPasswordField();
JButton btnConnect = new JButton("Connect");
JLabel lblStatus = new JLabel("Status:");
lblStatus.setFont(lblStatus.getFont().deriveFont(
lblStatus.getFont().getStyle() | Font.BOLD));
JLabel lblDisconnected = new JLabel("Disconnected");
lblDisconnected.setForeground(Color.RED);
JLabel lblDb = new JLabel("DB:");
textField_2 = new JTextField();
textField_2.setColumns(10);
JButton btnDisconnect = new JButton("Disconnect");
JButton btnSaveDb = new JButton("Save DB");
GroupLayout groupLayout = new GroupLayout(
frmDbStatusCheck.getContentPane());
groupLayout
.setHorizontalGroup(groupLayout
.createParallelGroup(Alignment.LEADING)
.addGroup(
groupLayout
.createSequentialGroup()
.addContainerGap(
GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.LEADING)
.addGroup(
groupLayout
.createSequentialGroup()
.addGroup(
groupLayout
.createParallelGroup(
Alignment.LEADING,
false)
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
lblIp)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
txtIpport))
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
lblUsername)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
textField_1,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
lblPassword)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
passwordField)))
.addGap(18)
.addComponent(
btnSaveDb))
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
lblDb)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
textField_2,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
btnConnect)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
btnDisconnect))
.addGroup(
groupLayout
.createSequentialGroup()
.addComponent(
lblStatus)
.addPreferredGap(
ComponentPlacement.RELATED)
.addComponent(
lblDisconnected)))
.addGap(175)));
groupLayout
.setVerticalGroup(groupLayout
.createParallelGroup(Alignment.LEADING)
.addGroup(
groupLayout
.createSequentialGroup()
.addContainerGap()
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(lblIp)
.addComponent(
txtIpport,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)
.addComponent(btnSaveDb))
.addPreferredGap(
ComponentPlacement.RELATED)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(
lblUsername)
.addComponent(
textField_1,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
ComponentPlacement.RELATED)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(
lblPassword)
.addComponent(
passwordField,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
ComponentPlacement.RELATED)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(lblDb)
.addComponent(
textField_2,
GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
ComponentPlacement.RELATED)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(
btnConnect)
.addComponent(
btnDisconnect))
.addPreferredGap(
ComponentPlacement.RELATED)
.addGroup(
groupLayout
.createParallelGroup(
Alignment.BASELINE)
.addComponent(lblStatus)
.addComponent(
lblDisconnected))
.addContainerGap(22, Short.MAX_VALUE)));
frmDbStatusCheck.getContentPane().setLayout(groupLayout);
JMenuBar menuBar = new JMenuBar();
frmDbStatusCheck.setJMenuBar(menuBar);
JMenu mnDbs = new JMenu("DB's");
menuBar.add(mnDbs);
btnSaveDb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (txtIpport.equals("") & textField_2.equals("")
& passwordField.equals("") & textField_1.equals("")) {
JOptionPane.showMessageDialog(null,
"No data in Textfields", "Error",
JOptionPane.INFORMATION_MESSAGE);
} else {
JMenuItem db1 = new JMenuItem();
mnDbs.add(db1);
}
}
});
btnConnect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
db = textField_2.getText();
pw = passwordField.getText();
username = textField_1.getText();
ip = txtIpport.getText();
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://" + ip
+ "/" + db, username, pw);
con.createStatement();
lblDisconnected.setText("Connected");
lblDisconnected.setForeground(Color.GREEN);
} catch (NullPointerException | ClassNotFoundException
| SQLException ex) {
JOptionPane.showMessageDialog(null,
"Error: No or wrong input Data ", "Error",
JOptionPane.PLAIN_MESSAGE);
}
}
});
btnDisconnect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
con.close();
lblDisconnected.setText("Disconnected");
lblDisconnected.setForeground(Color.RED);
} catch (NullPointerException | SQLException e) {
JOptionPane.showMessageDialog(null,
"Error: Not connected ", "Error",
JOptionPane.PLAIN_MESSAGE);
}
}
});
}
}
Da ich noch nicht wirklich fortgeschritten bin kann es durchaus sein, dass er Code unübersichtlich und nicht optimal geschrieben ist
Ich hoffe ihr könnt mir dabei helfen
Viele Grüße
Mike
Zuletzt bearbeitet: