

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class RoundedTextFieldDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> createAndShowGUI());
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Rounded Text Field Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.insets = new Insets(10, 10, 10, 10);
constraints.fill = GridBagConstraints.HORIZONTAL;
JTextField textField = createRoundedTextField();
constraints.gridy = 0;
frame.add(textField, constraints);
JButton submitButton = createSubmitButton(textField);
constraints.gridy = 1;
frame.add(submitButton, constraints);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static JTextField createRoundedTextField() {
JTextField textField = new JTextField();
textField.setBorder(new RoundBorder());
return textField;
}
private static JButton createSubmitButton(JTextField textField) {
JButton button = new JButton("Submit");
button.addActionListener(e -> {
String text = textField.getText();
if (!text.isEmpty()) {
JOptionPane.showMessageDialog(null, "입력한 내용: " + text);
}
});
return button;
}
static class RoundBorder extends AbstractBorder {
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.setColor(c.getBackground().darker());
g.drawRoundRect(x, y, width - 1, height - 1, 15, 15);
}
public Insets getBorderInsets(Component c) {
return new Insets(5, 10, 5, 10);
}
public Insets getBorderInsets(Component c, Insets insets) {
insets.left = insets.right = 10;
insets.top = insets.bottom = 5;
return insets;
}
}
}
+ 네이버지도 검색(0612)

package search;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
//import java.awt.*;
//import java.awt.event.*;
//import javax.swing.*;
import javax.swing.border.*;
public class ChatWindow extends JFrame {
private JTextArea chatArea;
private JTextField inputField;
public ChatWindow() {
setTitle("Chat Window");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
chatArea = new JTextArea();
chatArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(chatArea);
add(scrollPane, BorderLayout.CENTER);
inputField = createRoundedTextField();
inputField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sendMessage();
}
});
inputField.setBackground(Color.decode("#FBF4D2"));
add(inputField, BorderLayout.SOUTH);
setSize(480, 480);
setLocationRelativeTo(null);
setVisible(true);
}
public static JTextField createRoundedTextField() {
JTextField textField = new JTextField();
textField.setBorder(new RoundBorder());
return textField;
}
static class RoundBorder extends AbstractBorder {
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.setColor(c.getBackground().darker());
g.drawRoundRect(x, y, width - 1, height - 1, 15, 15);
}
public Insets getBorderInsets(Component c) {
return new Insets(5, 10, 5, 10);
}
public Insets getBorderInsets(Component c, Insets insets) {
insets.left = insets.right = 10;
insets.top = insets.bottom = 5;
return insets;
}
}
private void appendMessage(String message) {
chatArea.append(message + "\n");
}
private void sendMessage() {
String message = inputField.getText();
if (message == null || message.trim().isEmpty()) {
appendMessage("메시지를 입력해주세요.");
return;
}
appendMessage("나: " + message);
inputField.setText("");
// Perform Naver map search
String searchUrl = "https://map.naver.com/v5/search/" + URLEncoder.encode(message, StandardCharsets.UTF_8);
try {
Desktop.getDesktop().browse(new URI(searchUrl));
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
// Handle any error that occurred during browsing
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ChatWindow();
}
});
}
}'2023 > PROJECT' 카테고리의 다른 글
| [JAVA] 검색창 (0) | 2023.06.21 |
|---|---|
| [JAVA] 캘린더 UI (0) | 2023.06.20 |
| [JAVA] 오라클 일정 추가 캘린더 (0) | 2023.06.20 |
| [JAVA]이미지창에 api캘린더 추가 (0) | 2023.06.19 |
| [JAVA] 지정된 좌표 클릭 이벤트 (0) | 2023.06.19 |