Depois de aprender eventos de Java, escrevi um bloco de notas extremamente simples. Menubar, Menu, Menuitem e outros controles são usados, e os eventos incluem ActionListener e KeyListener.
O código é o seguinte:
pacote com.package3; /** Função: desenvolvimento simples do bloco de notas, você pode salvar arquivos, abrir arquivos e sair do bloco de notas* autor: ywq*/ importar javax.swing.*; importar java.awt.event.*; importar java.io.*; classe pública Menutext {// define componentes: jframe f; Menubar MB; // menu do menu do menu MU; // menu jtextarea jta; Menuitem Openitem, SaveItem, Closeitem; // submenu filedialog openge, savedia; // arquivo de arquivo de salvamento e caixa aberto popular; // construtor public menutext () {// chamando a função de inicialização init (); } // inicialize o componente public void init () {f = new jframe ("Simple Notepad"); mb = new Menubar (); mu = novo menu ("arquivo"); OpenItem = New Menuitem ("Open"); saveItem = new Menuitem ("Salvar"); CloseItem = novo menuitem ("Exit"); JTA = novo JTexTarea (); f.add (JTA); // Adicione Mu.add (OpenItem); mu.add (saveItem); Mu.Add (Closeitem); mb.add (mu); F.SetMenubar (MB); OpenTia = new Filedialog (F, "Open", Filedialog.Load); savedia = new filedialog (f, "salvar", filedialog.save); // Definir atributo jframe f.setbounds (200, 300, 500, 400); f.SetDefaultCloseoperation (jframe.exit_on_close); f.SetVisible (true); // Evento de função de evento de chamada (); } // Função de evento para lidar com eventos public void event () {// Opção aberta openItem.addactionListener (new ActionListener () {@Override public void ActionPerformed (ActionEvent e) {// Call OpenFile ();}}); // Salvar opção SalveItem.addactionListener (new ActionListener () {@Override public void ActionPerformed (ActionEvent e) {// Ligue para o método para salvar o arquivo. SaveFile ();}}); // Adicione um evento na área de texto, isto é, pressione Ctrl+S para salvar // porque existem muitas maneiras de ouvir eventos no teclado e precisamos apenas de um deles, podemos usar o adaptador keyAdapter, // (// key (// key (/key (// key (// key (// key (// key (// key (// key (// key (// key (// key (// key (// key (// key (// key (// key (////keyPress) E.GetKeyCode () == keyevent.vk_s) {// chamando o método para salvar o arquivo. // Fechar a opção CloseItem.addactionListener (new ActionListener () {@Override public void ActionPerformed (ActionEvent e) {// Saia do sistema System.exit (0);}}); } // Método para abrir texto public void OpenFile () {OpenDia.SetVisible (true); // Defina -o para exibi -lo // Obtenha o caminho e o nome do arquivo string dirpath = openge.getDirectory (); String filename = openge.getFile (); // impedir cliques para cancelar erros se (dirpath == null || nome do arquivo == null) retornar; jta.settext (""); // limpe o arquivo da área de texto = novo arquivo (dirpath, nome do arquivo); // Crie um objeto de arquivo // Leia os dados de acordo com a linha e exibi -os na área de texto, tente {BufferErader Br = new BufferredReader (new FileReader (arquivo)); Linha de string = null; while ((line = Br.readline ())! = null) {jta.append (linha+"/r/n"); } Br.Close (); } catch (ioexception ex) {lança nova run timeException ("leia falhou"); }} // Método para salvar o texto. public void savefile () {// primeiro determine se o arquivo existe se (file == null) {savedia.setVisible (true); String dirpath = savedia.getDirectory (); String filename = savedia.getFile (); // impedir cliques para cancelar erros se (dirpath == null || nome do arquivo == null) retornar; // porque o arquivo não existe. Portanto, você precisa criar um arquivo de arquivo arquivo = novo arquivo (dirpath, nome do arquivo); } // grava dados para arquivo tente {bufferWriter bw = new BufferWriter (new FileWriter (FILE)); String info = jta.getText (); // Obtenha as informações da área de texto BW.Write (Info); // Escreva operação BW.flush (); bw.close (); } catch (ioexception e1) {lança nova runTimeException (); }} public static void main (string [] args) {// crie o objeto new menuText (); }}}Os resultados da operação são mostrados na figura:
As funções implementadas por este programa são:
(1) Um arquivo pode ser aberto e editado.
(2) Você pode salvar o arquivo editado.
(3) Você pode usar Ctrl+S para salvar o texto
(4) Você pode clicar em CloseItem para sair do programa.
Ao implementar a Função 3 , um KeyListener é adicionado à área de texto e o adaptador KeyAdapter é usado para implementar a escuta. Mas agora, quando você precisar de uma combinação de escuta, ou seja, a operação de salvamento será acionada quando os dois Ctrl e S forem pressionados.
Em relação à escuta combinada, a API Java fornece métodos correspondentes.
Encontre a classe pai direta da classe KeyEvent, a classe de avental. Como mostrado na figura:
Confira os métodos na aula de avental da seguinte maneira:
Como uma subclasse da classe de avental, o objeto e da classe KeyEvent pode ser chamado diretamente ao método acima para fazer julgamentos. O método iScontrolDown () é usado para determinar se a tecla Ctrl é pressionada. Por exemplo, if (e.iscontroldOwn () && e.getKeyCode () == keyEvent.vk_s) no programa realiza julgamento de combinação.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.