added lab15 ex2
This commit is contained in:
103
src/lab15_observer/ex2/AnalogTimer.java
Normal file
103
src/lab15_observer/ex2/AnalogTimer.java
Normal file
@ -0,0 +1,103 @@
|
||||
package lab15_observer.ex2;
|
||||
|
||||
public class AnalogTimer implements TimerObserver {
|
||||
private final MyTimer timer;
|
||||
private static final String[][] digits = {
|
||||
{
|
||||
"┌─┐",
|
||||
"│ │",
|
||||
"└─┘"
|
||||
},
|
||||
{
|
||||
" ╷",
|
||||
" │",
|
||||
" ╵"
|
||||
},
|
||||
{
|
||||
"╶─┐",
|
||||
"┌─┘",
|
||||
"└─╴"
|
||||
},
|
||||
{
|
||||
"╶─┐",
|
||||
" ─┤",
|
||||
"╶─┘"
|
||||
},
|
||||
{
|
||||
"╷ ╷",
|
||||
"└─┤",
|
||||
" ╵"
|
||||
},
|
||||
{
|
||||
"┌─╴",
|
||||
"└─┐",
|
||||
"╶─┘"
|
||||
},
|
||||
{
|
||||
"┌─╴",
|
||||
"├─┐",
|
||||
"└─┘"
|
||||
},
|
||||
{
|
||||
"╶─┐",
|
||||
" │",
|
||||
" ╵"
|
||||
},
|
||||
{
|
||||
"┌─┐",
|
||||
"├─┤",
|
||||
"└─┘"
|
||||
},
|
||||
{
|
||||
"┌─┐",
|
||||
"└─┤",
|
||||
"╶─┘"
|
||||
},
|
||||
};
|
||||
|
||||
public AnalogTimer(MyTimer timer) {
|
||||
this.timer = timer;
|
||||
timer.registerObserver(this);
|
||||
}
|
||||
|
||||
public void update(int hours, int minutes, int seconds) {
|
||||
String[] lines = {"", "", ""};
|
||||
|
||||
addDigit(lines, hours / 10);
|
||||
addSpace(lines);
|
||||
addDigit(lines, hours % 10);
|
||||
|
||||
addSep(lines);
|
||||
|
||||
addDigit(lines, minutes / 10);
|
||||
addSpace(lines);
|
||||
addDigit(lines, minutes % 10);
|
||||
|
||||
addSep(lines);
|
||||
|
||||
addDigit(lines, seconds / 10);
|
||||
addSpace(lines);
|
||||
addDigit(lines, seconds % 10);
|
||||
|
||||
System.out.println(lines[0]);
|
||||
System.out.println(lines[1]);
|
||||
System.out.println(lines[2]);
|
||||
}
|
||||
|
||||
private void addDigit(String[] lines, int digit) {
|
||||
String[] parts = digits[digit];
|
||||
for (int i = 0; i < 3; i++) {
|
||||
lines[i] += parts[i];
|
||||
}
|
||||
}
|
||||
private void addSpace(String[] lines) {
|
||||
lines[0] += " ";
|
||||
lines[1] += " ";
|
||||
lines[2] += " ";
|
||||
}
|
||||
private void addSep(String[] lines) {
|
||||
lines[0] += " o ";
|
||||
lines[1] += " ";
|
||||
lines[2] += " o ";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user