0
太字テキストをマークしてください。 これまでのところ、私はこのGUIを作成しました:は、私はスイングとJavaで単純なテキストエディタを作るしようとしているのJava SwingとのJEditorPane
現時点では、太字、斜体および下線は機能していません。私は何をwan'tはマウスでいくつかのテキストをハイライト表示すると、そのテキスト太字作るために例えば太字]ボタンをクリックすることができることです。しかし、私はそれを達成するために何をすべきか分かりません。
私のコードは、これまでのところです:
import javax.swing.*;
import java.awt.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class MainFrame {
private JFrame frame;
//private JTextArea textArea;
private JEditorPane textArea;
MainFrame() {
frame = new JFrame("Simple Text Editor");
MakeContentPane();
MakeMenubar();
frame.pack();
frame.setVisible(true);
frame.setSize(800,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void MakeMenubar(){
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
// create the File menu
JMenu fileMenu = new JMenu("File");
menubar.add(fileMenu);
JMenu editMenu = new JMenu("Edit");
menubar.add(editMenu);
JMenu aboutMenu = new JMenu("About"); // TODO: Create about popup windowd
menubar.add(aboutMenu);
JMenuItem quitItem = new JMenuItem("Quit");
quitItem.addActionListener((e) -> System.exit(1));
JMenuItem openItem = new JMenuItem("Open");
openItem.addActionListener((e) -> Open());
JMenuItem saveAsItem = new JMenuItem("Save");
saveAsItem.addActionListener((e) -> SaveAs());
fileMenu.add(openItem);
fileMenu.add(saveAsItem);
fileMenu.add(quitItem);
Action action = new StyledEditorKit.BoldAction();
action.putValue(Action.NAME, "Bold");
editMenu.add(action);
}
public void MakeContentPane() {
//textArea = new JTextArea();
textArea = new JEditorPane("text/html", "");
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(textArea, BorderLayout.CENTER);
JButton boldItem = new JButton("Bold"); //TODO Create action
JButton italicItem = new JButton("Italic"); //TODO Create action
JButton underLineItem = new JButton("Underline"); //TODO Create action
JPanel buttons = new JPanel();
buttons.setLayout(new GridLayout(1,3));
buttons.add(boldItem);
buttons.add(italicItem);
buttons.add(underLineItem);
contentPane.add(buttons, BorderLayout.NORTH);
}
public void SaveAs() {
final JFileChooser SaveAs = new JFileChooser();
SaveAs.setApproveButtonText("Save");
int actionDialog = SaveAs.showOpenDialog(frame);
if (actionDialog != JFileChooser.APPROVE_OPTION) {
return;
}
File fileName = new File(SaveAs.getSelectedFile() + ".html");
BufferedWriter outFile = null;
try {
outFile = new BufferedWriter(new FileWriter(fileName));
textArea.write(outFile);
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (outFile != null) {
try {
outFile.close();
} catch (IOException e) {
}
}
}
}
public void Open(){
// TODO: Create method to open files
final JFileChooser SaveAs = new JFileChooser();
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
}
}
本当にありがとうございました!しかし、テキストを選択してボタンでアクションを選択できるようにするには、mouselistenerをセットアップするのがうまくいきません。これは大きな問題です –
MouseListenerで何もしません。チュートリアルを読む! 2分でチュートリアルを読むことはできません。 – camickr
Point taken .... –