Hi
Ich habe nun schon seit einer Ewigkeit das gleiche Problem und kann keine Lösung finden...
Ich habe eine Scrollbar mit der ich den Wert für ein sleep(...*Wert) setzen möchte. Doch solange das Programm in einer Methode ist, kann ich die Scrollbar nicht betätigen.
Hier mal den Code... Ich habe alles bis auf das Problem gelösch>>> die Ausgabe des Programms macht nicht mehr sehr viel sinn .
Vielen Dank schon im Voraus.
Ich habe nun schon seit einer Ewigkeit das gleiche Problem und kann keine Lösung finden...
Ich habe eine Scrollbar mit der ich den Wert für ein sleep(...*Wert) setzen möchte. Doch solange das Programm in einer Methode ist, kann ich die Scrollbar nicht betätigen.
Hier mal den Code... Ich habe alles bis auf das Problem gelösch>>> die Ausgabe des Programms macht nicht mehr sehr viel sinn .
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Sudoku extends JApplet
implements ActionListener, AdjustmentListener{
int Faktor, Zahl;
JPanel SudokuContent = new JPanel();
JPanel SpielFeld = new JPanel();
JPanel SudokuLöser = new JPanel();
CWait Delay = new CWait();
private JButton Lösen; //Funktionen Auswhal
JScrollBar SetDelay = new JScrollBar(Scrollbar.HORIZONTAL, 500, 50, 1, 1000);
public CPaintPanel PanelFeld = new CPaintPanel();
/***************************************************************/
public void init(){
setSize(600,600);
SudokuContent.setLayout(new FlowLayout());
PanelFeld.setPreferredSize(new Dimension(200,200));
PanelFeld.setBackground(Color.yellow);
SudokuContent.add(PanelFeld);
SudokuContent.add(SudokuLöser);
add(SudokuContent);
Lösen = new JButton("Lösen");
Lösen.addActionListener(this);
SudokuLöser.setLayout(new GridLayout(2,1,2,2));
SudokuLöser.setPreferredSize(new Dimension(150,60));
SudokuLöser.add(Lösen);
SetDelay.addAdjustmentListener(this);
SudokuLöser.add(SetDelay);
}
public void paint(Graphics g){}
public void actionPerformed(ActionEvent e){
if(e.getSource() == Lösen){
Output();
}
}
//Während diese Methode am laufen ist, kann die Scrollbar nicht verändert werden
public void Output(){
while(true){
if(Zahl == 1){
Zahl = 5;
}
else{
Zahl = 1;
}
Graphics MyGraphic = PanelFeld.getGraphics();
MyGraphic.setColor(Color.blue);
MyGraphic.fillRect(100,100,40,40);
MyGraphic.setColor(Color.white);
MyGraphic.drawString(""+Zahl,110,125);//Zahl ausgeben*/
Delay.many_mSec(Faktor);//<<<<<<<<<<<< mit der ScrollBar möchte ich den Faktor_Wert verändern
}
}
public void adjustmentValueChanged(AdjustmentEvent e){
Faktor = SetDelay.getValue();
}
/*******************************************/
class CPaintPanel extends JPanel
{
private int OutputZahl;
private Color SchriftFarbe;
public void paintComponent(Graphics g){
super.paintComponent(g);
}
}/*****************************************/
class CWait {
public void many_mSec(long s) {
try {
Thread.currentThread().sleep(1*s);
}
catch (InterruptedException e) {
}
}
}/*********************************/
}
Vielen Dank schon im Voraus.