[RESOLVIDO]Setando texto apartir de determinada posição
4 respostas
Scorsatto
Bom dia a todos.
Tenho um JEditorPane onde possuo um botão que ao clicado insere a data no JEditorPane, até ai tudo bem,
o problema é que ele apaga qualquer coisa que eu já havia digitado.
Alguem teria alguma ideia de como pegar a posição do cursor e começar a escrever a data apartir daquele ponto?
Segue codigo.
this.buttonInserirData.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){DateFormatdfmt=newSimpleDateFormat("EEEE, d 'de' MMMM 'de' yyyy");Datehoje=Calendar.getInstance(Locale.getDefault()).getTime();editorPanePrincipal.setContentType("text/html");editorPanePrincipal.setText("<html><b>"+dfmt.format(hoje)+"</b></html>");}});
Um exemplo bobo. Não sei se funciona com text/html :^(
packageguj;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.text.DateFormat;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JEditorPane;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.SwingUtilities;importjavax.swing.text.BadLocationException;publicclassTesteJEditorPaneextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJPanelpnlBotoes=null;privateJButtonbtnInserirData=null;privateJScrollPanescpEditor=null;privateJEditorPaneedpEditor=null;privateJPanelgetPnlBotoes(){if(pnlBotoes==null){pnlBotoes=newJPanel();pnlBotoes.setLayout(newFlowLayout());pnlBotoes.add(getBtnInserirData(),null);}returnpnlBotoes;}privateJButtongetBtnInserirData(){if(btnInserirData==null){btnInserirData=newJButton();btnInserirData.setText("Colar Data Atual");btnInserirData.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){// Pego onde está o começo....intselectionStart=edpEditor.getSelectionStart();try{// E então insiro os dados desejados.edpEditor.getDocument().insertString(selectionStart,df.format(newDate()),null);}catch(BadLocationExceptionex){}// Note que ao clicarmos o botão, o foco foi transferido para o botão, // então para facilitar devemos retornar o foco para o JEditorPane.edpEditor.grabFocus();}privateDateFormatdf=newSimpleDateFormat("dd/MM/yyyy");});}returnbtnInserirData;}privateJScrollPanegetScpEditor(){if(scpEditor==null){scpEditor=newJScrollPane();scpEditor.setViewportView(getEdpEditor());}returnscpEditor;}privateJEditorPanegetEdpEditor(){if(edpEditor==null){edpEditor=newJEditorPane();}returnedpEditor;}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){TesteJEditorPanethisClass=newTesteJEditorPane();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}publicTesteJEditorPane(){super();initialize();}privatevoidinitialize(){this.setSize(300,200);this.setContentPane(getJContentPane());this.setTitle("Teste JEditorPane");}privateJPanelgetJContentPane(){if(jContentPane==null){jContentPane=newJPanel();jContentPane.setLayout(newBorderLayout());jContentPane.add(getPnlBotoes(),BorderLayout.SOUTH);jContentPane.add(getScpEditor(),BorderLayout.CENTER);}returnjContentPane;}}
Scorsatto
Muito obrigado entanglement , funcionou perfeitamente.