public class Test() {
JTextPane pane = new JTextPane();
int counter = 0;
CustomerFilter customerFilter = new CustomerFilter(pane, counter);
((AbstractDocument)(pane.getDocument())).setDocumentFilter(customerFilter);
customerFilter.incCounter(10);
}
public class CustomFilter extends DocumentFilter {
private JTextPane pane;
private int counter;
public CustomFilter(JTextPane pane, int counter) {
this.pane = pane;
this.counter = counter;
}
public void remove(FilterBypass fb, int offset, int length) throws BadLocationException {
super.remove(fb, offset, length);
System.out.println("Counter: " + counter); //denna är alltid 0!?
}
...
public void incCounter(int newCounter) {
counter = newCounter;
}
public void incCounter(int newCounter) {
counter = newCounter;
System.out.println("Counter is now: " + counter); //här skrivs rätt värde ut
}
public class Test() {
JTextPane pane = new JTextPane();
int counter = 0;
CustomerFilter customerFilter = new CustomerFilter(pane, counter);
((AbstractDocument)(pane.getDocument())).setDocumentFilter(customerFilter);
customerFilter.incCounter(10);
}
public class CustomFilter extends DocumentFilter {
private JTextPane pane;
private int counter;
public CustomFilter(JTextPane pane, int counter) {
this.pane = pane;
this.counter = counter;
}
public void remove(FilterBypass fb, int offset, int length) throws BadLocationException {
super.remove(fb, offset, length);
System.out.println("Counter: " + counter); //denna är alltid 0!?
}
...
public void incCounter(int newCounter) {
counter = newCounter;
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.text.AbstractDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
import java.awt.BorderLayout;
public class TestFilterExample {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestFilterExample window = new TestFilterExample();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public TestFilterExample() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0));
JTextPane textPane = new JTextPane();
textPane.setText("Delete any of this...");
frame.getContentPane().add(textPane);
int id = 5;
CustomFilter customerFilter = new CustomFilter(textPane);
((AbstractDocument)(textPane.getDocument())).setDocumentFilter(customerFilter);
//sets id of pane
customerFilter.setID(id);
}
}
class CustomFilter extends DocumentFilter{
private JTextPane pane;
private int id;
public CustomFilter(JTextPane pane) {
this.pane = pane;
}
public void setID(int id) {
this.id = id;
}
public void remove(FilterBypass fb, int offset, int length) throws BadLocationException {
System.out.println("Remove...");
System.out.println("ID of this pane is: " + id);
}
}
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106