📄 editor.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.LinkedList;
class _single implements Serializable{
int point,cont;
String answer[];
}
class _multi implements Serializable{
int point,cont;
String answer[];
}
class _judge implements Serializable{
int point,cont;
String answer[];
}
class ReadInfo{
String temp,type;
int i,point,cont,start=0,end=0;
_judge j=new _judge();
_single s=new _single();
_multi m=new _multi();
public ReadInfo(String info){
// String info=tt;
end=info.indexOf(',',start);
temp=info.substring(start,end);
for(i=0;end+2<info.length();i++){
if(i>1){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
}
if(temp.equals("single")==true){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
s.point=Integer.parseInt(temp);
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
s.cont=Integer.parseInt(temp);
s.answer=new String[s.cont];
for(i=0;i<s.cont;i++){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
s.answer[i]=temp;
}
}
else if(temp.equals("multi")==true){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
m.point=Integer.parseInt(temp);
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
m.cont=Integer.parseInt(temp);
m.answer=new String[m.cont];
for(i=0;i<m.cont;i++){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
m.answer[i]=temp;
}
}
else if(temp.equals("judge")==true){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
j.point=Integer.parseInt(temp);
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
j.cont=Integer.parseInt(temp);
j.answer=new String[j.cont];
for(i=0;i<j.cont;i++){
start=end+1;
end=info.indexOf(',',start);
temp=info.substring(start,end);
j.answer[i]=temp;
}
}
}
}
public void disPlay(){
System.out.println("Single "+s.cont+" "+s.point);
for(i=0;i<s.cont;i++){
System.out.print(s.answer[i]+" ");
}
System.out.println();
System.out.println("Mulit "+m.cont+" "+m.point);
for(i=0;i<m.cont;i++){
System.out.print(m.answer[i]+" ");
}
System.out.println();
System.out.println("Judge "+j.cont+" "+j.point);
for(i=0;i<j.cont;i++){
System.out.print(j.answer[i]+" ");
}
System.out.println();
}
}
public class Editor extends JFrame implements ActionListener{
private JTextArea textPane=new JTextArea();
LinkedList queList;
ReadInfo read;
public Editor(){
JSplitPane
super("编辑试题");
Container content=getContentPane();
textPane.setEditable(true);
content.add(new JScrollPane(textPane),BorderLayout.CENTER);
JMenu menu=new JMenu("File");
menu.add(makeMenuItem("打开TXT文件"));
menu.add(makeMenuItem("Save"));
menu.add(makeMenuItem("Quit"));
JMenuBar menuBar=new JMenuBar();
menuBar.add(menu);
setJMenuBar(menuBar);
setSize(1024,768);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
String command=e.getActionCommand();
if(command.equals("Quit"))
System.exit(0);
else if(command.equals("Open")) loadFile();
else if(command.equals("Save")) saveFile();
}
private void loadFile(){
JFileChooser chooser=new JFileChooser();
int result=chooser.showOpenDialog(this);
if(result==JFileChooser.CANCEL_OPTION) return;
try{
String s;
File file=chooser.getSelectedFile();
FileInputStream fis=new FileInputStream(file);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
while((s=br.readLine())!=null){
textPane.append(s+"\n");
}
br.close();
}catch(Exception e){ textPane.setText("Could not load file: "+e); }
// catch(Exception e){ e.printStackTrace(); }
}
private void saveFile(){
String text,temp;
int start=0,end,i;
Question que;
queList=new LinkedList();
text=textPane.getText();
end=text.indexOf('\n',start);
temp=text.substring(start,end);
ReadInfo ri=new ReadInfo(temp);
read=ri;
if(ri.s.cont!=0){
for(i=0;i<ri.s.cont;i++){
start=end+1;
end=text.indexOf("\n\n",start);
temp=text.substring(start,end);
System.out.println(temp);
System.out.println(ri.s.answer[i]);
que=new Question("single",temp,ri.s.answer[i],ri.s.point);
if(queList.size()==0){
queList.addFirst(que);
}else{
queList.addLast(que);
}
}
}
if(ri.m.cont!=0){
for(i=0;i<ri.m.cont;i++){
start=end+1;
end=text.indexOf("\n\n",start);
temp=text.substring(start,end);
System.out.println(temp);
System.out.println(ri.m.answer[i]);
que=new Question("multi",temp,ri.m.answer[i],ri.m.point);
if(queList.size()==0){
queList.addFirst(que);
}else{
queList.addLast(que);
}
}
}
if(ri.j.cont!=0){
for(i=0;i<ri.j.cont;i++){
start=end+1;
end=text.indexOf("\n\n",start);
temp=text.substring(start,end);
System.out.println(temp);
System.out.println(ri.j.answer[i]);
que=new Question("judge",temp,ri.j.answer[i],ri.j.point);
if(queList.size()==0){
queList.addFirst(que);
}else{
queList.addLast(que);
}
}
System.out.println(queList.size());
}
new InfoInput(queList,read.s,read.m,read.j);
}
private JMenuItem makeMenuItem(String name){
JMenuItem m=new JMenuItem(name);
m.addActionListener(this);
return m;
}
public static void main(String[] args){
new Editor().setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -