/**
* Width of a character cell in pixels.
*/
- private int textWidth = 1;
+ private int textWidth = 16;
/**
* Height of a character cell in pixels.
*/
- private int textHeight = 1;
+ private int textHeight = 20;
/**
* Width of a character cell in pixels, as reported by font.
SwingTerminal.this.setDimensions(sessionInfo.
getWindowWidth(), sessionInfo.getWindowHeight());
- SwingTerminal.this.resizeToScreen();
+ SwingTerminal.this.resizeToScreen(true);
SwingTerminal.this.swing.setVisible(true);
}
});
) {
do {
do {
+ clearPhysical();
drawToSwing();
} while (swing.getBufferStrategy().contentsRestored());
swing.setFont(font);
glyphCacheBlink = new HashMap<Cell, BufferedImage>();
glyphCache = new HashMap<Cell, BufferedImage>();
- resizeToScreen();
+ resizeToScreen(true);
}
}
gotFontDimensions = true;
}
+ /**
+ * Resize the physical screen to match the logical screen dimensions.
+ *
+ * @param resizeComponent if true, resize the Swing component
+ */
+ private void resizeToScreen(final boolean resizeComponent) {
+ if (resizeComponent) {
+ swing.setDimensions(textWidth * width, textHeight * height);
+ }
+ clearPhysical();
+ }
+
/**
* Resize the physical screen to match the logical screen dimensions.
*/
@Override
public void resizeToScreen() {
- swing.setDimensions(textWidth * width, textHeight * height);
- clearPhysical();
+ resizeToScreen(false);
}
/**
|| (cell.isBlink() && cursorBlinkVisible)
) {
gr2.setColor(attrToForegroundColor(cellColor));
- char [] chars = new char[1];
- chars[0] = cell.getChar();
- gr2.drawChars(chars, 0, 1, gr2x + textAdjustX,
+ char [] chars = Character.toChars(cell.getChar());
+ gr2.drawChars(chars, 0, chars.length, gr2x + textAdjustX,
gr2y + textHeight - maxDescent + textAdjustY);
if (cell.isUnderline()) {
break;
default:
if (!alt && ctrl && !shift) {
+ // Control character, replace ch with 'A', 'B', etc.
ch = KeyEvent.getKeyText(key.getKeyCode()).charAt(0);
}
// Not a special key, put it together