ich Idiot!
Natürlich hast du Recht, dass man das gut mit den Grafikoptionen machen kann. Ich war irgendwie die ganze Zeit versessen drauf nen Control zu verwenden.
Bzgl der Schnelligkeit: Bei mir ist das jedenfalls schneller, da in der Simulation ein Programm assembliert werden kann, welches dann in dieser Simulation laufen soll. Für jeden einzelnen Pixel würde man dann einen Aufruf brauchen, die die (simulierte ) CPU verarbeiten muss. Deswegen mach ich das nur Textbasiert.
Auf jeden Fall vielen Dank für die schnelle Antwort! Hast mir n gutes Stück weitergeholfen.
Für alle die vll ein ähnliches Anliegen haben hier mal der (zugegebenermaßen nicht perfekter) Quellcode:
[HIGHLIGHT="Java"]
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.Graphics;
@SuppressWarnings("serial")
public class MyConsole extends javax.swing.JFrame {
private JPanel jConsole;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MyConsole inst = new MyConsole();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public MyConsole() {
super();
initGUI();
}
private void initGUI() {
try {
jConsole = new MyPanel();
this.add(jConsole);
jConsole.setBackground(new java.awt.Color(0,0,0));
jConsole.setFont(new java.awt.Font("Courier New",0,18));
jConsole.setForeground(new java.awt.Color(255,255,255));
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}
class MyPanel extends JPanel{
// 0x20 == SPACE
// 0x2554 = linke obere Ecke
// 0x2557 = rechte obere Ecke
// 0x2550 = horizontal
// 0x2551 = vertikal
// 0x255A = linke untere Ecke
// 0x255D = rechte untere Ecke
private char[][] data= {
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{' ', 0x2554, 0x2550, 0x2550, 0x2550, 0x2550, 0x2550, 0x2550, 0x2557, ' '},
{' ', 0x2551, ' ', ' ', ' ', ' ', ' ', ' ', 0x2551, ' '},
{' ', 0x2551, ' ', ' ', ' ', ' ', ' ', ' ', 0x2551, ' '},
{' ', 0x2551, ' ', 'H', 'e', 'l', 'l', 'o', 0x2551, ' '},
{' ', 0x2551, 'W', 'o', 'r', 'l', 'd', ' ', 0x2551, ' '},
{' ', 0x2551, ' ', ' ', ' ', ' ', ' ', ' ', 0x2551, ' '},
{' ', 0x2551, ' ', ' ', ' ', ' ', ' ', ' ', 0x2551, ' '},
{' ', 0x255A, 0x2550, 0x2550, 0x2550, 0x2550, 0x2550, 0x2550, 0x255D, ' '},
{' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}
};
public void paint (Graphics g) {
super.paintComponent(g);
for (int i=0; i < this.data.length; i++){
System.out.println("DRAW AT:" + i*18);
g.drawChars(this.data, 0, this.data.length, 0, (i+1)*18);
}
}
}
}
[/HIGHLIGHT]