You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.5 KiB
163 lines
5.5 KiB
2 years ago
|
/*
|
||
|
* To change this license header, choose License Headers in Project Properties.
|
||
|
* To change this template file, choose Tools | Templates
|
||
|
* and open the template in the editor.
|
||
|
*/
|
||
|
package propertiesswing2;
|
||
|
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.ActionListener;
|
||
|
import java.io.File;
|
||
|
import java.io.FileNotFoundException;
|
||
|
import java.io.FileReader;
|
||
|
import java.io.FileWriter;
|
||
|
import java.io.IOException;
|
||
|
import java.util.Properties;
|
||
|
import java.util.logging.Level;
|
||
|
import java.util.logging.Logger;
|
||
|
import javax.swing.JButton;
|
||
|
import javax.swing.JFrame;
|
||
|
import javax.swing.JLabel;
|
||
|
import javax.swing.JPanel;
|
||
|
import javax.swing.JTextField;
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
* @author denis
|
||
|
*/
|
||
|
public class MainFrame extends JFrame{
|
||
|
private Properties property;
|
||
|
private File file;
|
||
|
private JTextField urlField;
|
||
|
private JTextField usernameField;
|
||
|
private JTextField passwordField;
|
||
|
|
||
|
public MainFrame(){
|
||
|
setTitle("Properties");
|
||
|
Container root = getContentPane();
|
||
|
root.setLayout(new BorderLayout(20, 20));
|
||
|
|
||
|
//Добавляем группу кнопок
|
||
|
root.add(createButtons(), BorderLayout.NORTH);
|
||
|
//Добавляем группу меток и текстовых полей
|
||
|
root.add(createDataArea());
|
||
|
|
||
|
|
||
|
setSize(800, 300);
|
||
|
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
||
|
setLocationRelativeTo(null);
|
||
|
setResizable(false);
|
||
|
setVisible(true);
|
||
|
}
|
||
|
|
||
|
private JPanel createButtons(){
|
||
|
JPanel panel = new JPanel(new FlowLayout());
|
||
|
JButton loadButton = new JButton("LOAD");
|
||
|
JButton saveButton = new JButton("SAVE");
|
||
|
panel.add(loadButton);
|
||
|
panel.add(saveButton);
|
||
|
|
||
|
loadButton.addActionListener(e -> {
|
||
|
loadProperties();
|
||
|
if(property!=null){
|
||
|
if (urlField!=null) urlField.setText(property.getProperty("URL", ""));
|
||
|
if (usernameField!=null) usernameField.setText(property.getProperty("username", ""));
|
||
|
if (passwordField!=null) passwordField.setText(property.getProperty("password", ""));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
saveButton.addActionListener(e -> {
|
||
|
String url = urlField!=null ? urlField.getText() : "";
|
||
|
String username = usernameField!=null ? usernameField.getText() : "";
|
||
|
String password = passwordField!=null ? passwordField.getText() : "";
|
||
|
if(property!=null){
|
||
|
property.put("URL", url);
|
||
|
property.put("username", username);
|
||
|
property.put("password", password);
|
||
|
}
|
||
|
saveProperties();
|
||
|
});
|
||
|
|
||
|
return panel;
|
||
|
}
|
||
|
|
||
|
private JPanel createDataArea(){
|
||
|
JPanel panel = new JPanel(new GridBagLayout());
|
||
|
GridBagConstraints constraints = new GridBagConstraints();
|
||
|
|
||
|
JLabel urlLabel = new JLabel("URL:");
|
||
|
urlField = new JTextField(50);
|
||
|
|
||
|
constraints.gridx = 0;
|
||
|
constraints.gridy = 0;
|
||
|
panel.add(urlLabel, constraints);
|
||
|
|
||
|
constraints.gridx = 1;
|
||
|
constraints.gridy = 0;
|
||
|
panel.add(urlField, constraints);
|
||
|
|
||
|
JLabel usernameLabel = new JLabel("username:");
|
||
|
usernameField = new JTextField(50);
|
||
|
|
||
|
constraints.gridx = 0;
|
||
|
constraints.gridy = 1;
|
||
|
panel.add(usernameLabel, constraints);
|
||
|
|
||
|
constraints.gridx = 1;
|
||
|
constraints.gridy = 1;
|
||
|
panel.add(usernameField, constraints);
|
||
|
|
||
|
JLabel passwordLabel = new JLabel("password:");
|
||
|
passwordField = new JTextField(50);
|
||
|
|
||
|
constraints.gridx = 0;
|
||
|
constraints.gridy = 2;
|
||
|
panel.add(passwordLabel, constraints);
|
||
|
|
||
|
constraints.gridx = 1;
|
||
|
constraints.gridy = 2;
|
||
|
panel.add(passwordField, constraints);
|
||
|
|
||
|
return panel;
|
||
|
}
|
||
|
|
||
|
private void loadProperties(){
|
||
|
property = new Properties();
|
||
|
if(file==null) file = new File("C:\\PropDir\\prop2.properties");
|
||
|
//Проверяем существование файла
|
||
|
if(!file.exists()) {
|
||
|
try {
|
||
|
file.createNewFile();
|
||
|
} catch (IOException ex) {
|
||
|
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||
|
}
|
||
|
} else {
|
||
|
if(file.canRead()){
|
||
|
try (FileReader reader = new FileReader(file)) {
|
||
|
property.load(reader);
|
||
|
} catch (FileNotFoundException ex) {
|
||
|
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||
|
} catch (IOException ex) {
|
||
|
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void saveProperties(){
|
||
|
if(file==null) file = new File("C:\\PropDir\\prop2.properties");
|
||
|
if(!file.exists()) try {
|
||
|
file.createNewFile();
|
||
|
} catch (IOException ex) {
|
||
|
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||
|
}
|
||
|
if(file.canWrite()){
|
||
|
try (FileWriter writer = new FileWriter(file)) {
|
||
|
property.store(writer, null);
|
||
|
} catch (IOException ex) {
|
||
|
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|