Witam ! Dopiero uczę się języka Java więc wiem że robie pewnie trochę błędów ale proszę o wyrozumiałość ;). Piszę program który będzie takim mini edytorem html. Koncepcja jest taka: Pasek narzędzi u góry, do tego dwa pola tekstowe. Jedno z edytorem tekstu po lewej a drugie nieedytowalne po prawej z wyświetlaniem podglądu tego co zostało już napisane w edytorze. Na razie napisałem coś takiego
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Edytor {
public static void main(String[] args) {
RamkaEdytora okno = new RamkaEdytora();
okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okno.show();
}
}
class RamkaEdytora extends JFrame
{
public RamkaEdytora()
{
/**
Pobieramy rozmiar okna
*/
Toolkit rozmiar = Toolkit.getDefaultToolkit();
Dimension rozmiarEkranu = rozmiar.getScreenSize();
int WYSOKOSC = rozmiarEkranu.height;
int SZEROKOSC = rozmiarEkranu.width;
/**
Ustawianie wielkośći okna połowe do rozdzielczosci + ustawienie lokalizacji okna
*/
setSize(SZEROKOSC-100, WYSOKOSC-100);
setLocation(1,1);
setTitle("PROSTY EDYTOR TEKSTOWY");
/**
* Menu
*/
JMenuBar pasekMenu = new JMenuBar();
JMenu menuPlik = new JMenu("Plik");
JMenuItem zamknij = new JMenuItem("Zamknij");
menuPlik.add(zamknij);
zamknij.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
System.exit(0);
}
});
JMenu menuPomoc = new JMenu("Pomoc");
pasekMenu.add(menuPlik);
pasekMenu.add(menuPomoc);
setJMenuBar(pasekMenu);
/**
* Dodajemy obszary tekstowe
*/
Container powZawartosci = getContentPane();
obszar1 = new JTextArea(3,50);
obszar2 = new JEditorPane();
obszar1.setWrapStyleWord(true);
obszar2.setEditable(false);
obszar2.setContentType("text/html");
JScrollPane powPrzewijania = new JScrollPane(obszar1);
JScrollPane powPrzewijania2 = new JScrollPane(obszar2);
powZawartosci.add(powPrzewijania, BorderLayout.LINE_START);
powZawartosci.add(powPrzewijania2, BorderLayout.CENTER);
/**
* Dodajemy pasek narzędzi
*/
JPanel pasekNarzedzi = new JPanel();
JButton HTML = new JButton("< html >");
pasekNarzedzi.add(HTML);
JButton HTMLe = new JButton("< / html >");
pasekNarzedzi.add(HTMLe);
JButton FONT = new JButton("< font color= >");
pasekNarzedzi.add(FONT);
powZawartosci.add(pasekNarzedzi, BorderLayout.PAGE_START);
/** akcja dla przycisków
* *
* */
HTML.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
obszar1.append("<html>");
}
});
FONT.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
obszar1.append("<font>");
}
});
HTMLe.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent zdarzenie)
{
obszar1.append("</html>");
}
});
//Przycisk podglądu
JButton podglad = new JButton("Podglad");
powZawartosci.add(podglad, BorderLayout.PAGE_END);
podglad.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
obszar2.setText(obszar1.getText());
}
});
}
private JTextArea obszar1;
private JEditorPane obszar2;
}
Chciałbym, żeby była możliwość dodawania tekstu w miejscu w którym jest aktualnie kursor, a nie na końcu. Czy ktoś może mi powiedzieć jak to zrobić ?