62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.Container;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.SeekableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static java.nio.file.StandardOpenOption.*;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Test {
public static void main(String[] args) {
newFrame();
}
public static void newFrame() {
JFrame frame = new JFrame();
frame.setSize(300, 500);
Container container = frame.getContentPane();
container.add(textArea);
textArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() != KeyEvent.VK_ENTER) {
return;
}
String content = textArea.getText();
Matcher matcher = Pattern.compile("(?m)^-1$").matcher(content);
if (matcher.find()) {
content = content.replaceAll("(?m)^-1$", "").replaceAll("(\n)+$", "\n");
write(content);
}
}
@Override
public void keyPressed(KeyEvent e) {
}
});
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private static void write(String content) {
Path path = Paths.get(System.getProperty("user.dir")).resolve("content.txt");
try (SeekableByteChannel channel = Files.newByteChannel(path, CREATE, WRITE, TRUNCATE_EXISTING)) {
channel.write(ByteBuffer.wrap(content.getBytes()));
System.out.println("写入成功");
System.exit(1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static JTextArea textArea = new JTextArea();
}