Я создал два потока, работающих вместе с Netbeans, и я хочу добавить три кнопки для остановки, паузы и продолжения. Они выделяют и отменяют выделение текста. Код для одного из них:
class TimeHighspell extends Thread{
int x=0;
int pos;
int delay;
Control control ;
String [] result;
int[] anArray;
public TimeHighspell (Control c, int delay,String [] result1,int pos,int[] anArray) {
x=0;
control = c;
this.delay = delay;
result=result1;
this.pos=pos;
this.anArray=anArray;
}
public void run(){
while (true) {
control.putHighspell(result,pos,x);
int Search=x+1;
Arrays.sort(anArray);
int index = Arrays.binarySearch(anArray,Search);
if (index > 0)
pos=pos+result[x].length()+1;
else
pos=pos+result[x].length();
x=x+1;
try {
Thread.sleep( delay );
}
catch ( InterruptedException e ) {}
}}}
class Control {
private boolean ping = false;
public synchronized void putHigh(String [] result,int pos,int x){
while(ping==false)
try{
//notify();
wait();
}catch( InterruptedException e){}
highlight(editPane, result[x],pos);
HighBold(editPane,result[x],pos);
ping = false;
notifyAll();
}
Чтобы запустить их, я использую кнопку, куда я положил этот код
private void HighWordActionPerformed(java.awt.event.ActionEvent evt) {
String [] result1 = editPane.getText().split("\\s");
Control c = new Control();
int delay;
int pos=0;
delay=Slider.getValue();
RemoveHigh p1 = new RemoveHigh(c, delay);
TimeHigh c1 = new TimeHigh(c, delay,result1,pos);
p1.start();
c1.start();}