Browse Source
- aktuelle Einstellungen werden beim Scannen nicht gespeichert - Seitenzähler wird nicht direkt beim reaktivieren des Scan-Buttons hochgezählt, sondern erst wenn die komplette Verarbeitung der aktuellen Seite durch ist Signed-off-by: Stephan Richter <s.richter@srsoftware.de>main
11 changed files with 601 additions and 61 deletions
@ -1,47 +1,47 @@ |
|||||||
package de.srsoftware.belegscanner.gui; |
package de.srsoftware.belegscanner.gui; |
||||||
|
|
||||||
|
import de.srsoftware.belegscanner.Worker; |
||||||
|
|
||||||
import javax.swing.*; |
import javax.swing.*; |
||||||
import java.awt.*; |
import java.awt.*; |
||||||
|
|
||||||
import static de.srsoftware.belegscanner.Application.t; |
import static de.srsoftware.belegscanner.Application.t; |
||||||
import static java.awt.BorderLayout.CENTER; |
import static java.awt.BorderLayout.CENTER; |
||||||
|
import static java.awt.BorderLayout.EAST; |
||||||
import static java.awt.BorderLayout.NORTH; |
import static java.awt.BorderLayout.NORTH; |
||||||
import static java.awt.BorderLayout.WEST; |
import static java.awt.BorderLayout.WEST; |
||||||
|
|
||||||
public class ResolutionSelector extends JPanel{ |
public class ResolutionSelector extends JPanel{ |
||||||
|
|
||||||
private int resolution = 150; |
private final Worker worker; |
||||||
|
public ResolutionSelector(Worker worker) { |
||||||
public ResolutionSelector() { |
|
||||||
super(new BorderLayout()); |
super(new BorderLayout()); |
||||||
|
this.worker = worker; |
||||||
|
; |
||||||
ButtonGroup group = new ButtonGroup(); |
ButtonGroup group = new ButtonGroup(); |
||||||
JLabel label = new JLabel(t("current resolution") + ": " + resolution + "px"); |
JLabel label = new JLabel(t("current resolution") + ": " + worker.setResolution(150) + "px"); |
||||||
add(label, NORTH); |
add(label, NORTH); |
||||||
add(resolutionButton(group, label, 150), WEST); |
add(resolutionButton(group, label, 150), WEST); |
||||||
add(resolutionButton(group, label, 300), CENTER); |
add(resolutionButton(group, label, 300), CENTER); |
||||||
add(resolutionButton(group, label, 600), BorderLayout.EAST); |
add(resolutionButton(group, label, 600), EAST); |
||||||
setMaximumSize(new Dimension(600, 200)); |
setMaximumSize(new Dimension(600, 200)); |
||||||
} |
} |
||||||
|
|
||||||
public int resolutiion(){ |
|
||||||
return resolution; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
/** |
||||||
* create one radio button for the resoultionSelector |
* create one radio button for the resoultionSelector |
||||||
* @param group |
* @param group |
||||||
* @param label |
* @param label |
||||||
* @param i |
* @param resolution |
||||||
* @return |
* @return |
||||||
*/ |
*/ |
||||||
private JRadioButton resolutionButton(ButtonGroup group, JLabel label, int i) { |
private JRadioButton resolutionButton(ButtonGroup group, JLabel label, int resolution) { |
||||||
JRadioButton btn = new JRadioButton(i+" px"); |
JRadioButton btn = new JRadioButton(resolution+" px"); |
||||||
btn.addActionListener(ev -> { |
btn.addActionListener(ev -> { |
||||||
resolution = i; |
label.setText("aktuelle Auflösung: "+worker.setResolution(resolution)+"px"); |
||||||
label.setText("aktuelle Auflösung: "+resolution+"px"); |
|
||||||
}); |
}); |
||||||
group.add(btn); |
group.add(btn); |
||||||
if (i==150) btn.setSelected(true); |
if (resolution==150) btn.setSelected(true); |
||||||
return btn; |
return btn; |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,48 @@ |
|||||||
|
package de.srsoftware.belegscanner.gui; |
||||||
|
|
||||||
|
import de.srsoftware.belegscanner.Worker; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
import static de.srsoftware.belegscanner.Application.t; |
||||||
|
import static java.awt.BorderLayout.CENTER; |
||||||
|
import static java.awt.BorderLayout.NORTH; |
||||||
|
import static java.awt.BorderLayout.WEST; |
||||||
|
|
||||||
|
public class RotationSelector extends JPanel { |
||||||
|
|
||||||
|
private final Worker worker; |
||||||
|
private final JRadioButton noRotation; |
||||||
|
|
||||||
|
public RotationSelector(Worker worker) { |
||||||
|
setLayout(new BoxLayout(this,BoxLayout.X_AXIS)); |
||||||
|
this.worker = worker; |
||||||
|
ButtonGroup group = new ButtonGroup(); |
||||||
|
worker.setRotation(0); |
||||||
|
add(noRotation = rotatatonButton(group, 0)); |
||||||
|
add(rotatatonButton(group, 90)); |
||||||
|
add(rotatatonButton(group, 180)); |
||||||
|
add(rotatatonButton(group, -90)); |
||||||
|
noRotation.setSelected(true); |
||||||
|
add(new JLabel(t("Rotation"))); |
||||||
|
setMaximumSize(new Dimension(600, 200)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* create one radio button for the resoultionSelector |
||||||
|
* @param group |
||||||
|
* @param angle |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
private JRadioButton rotatatonButton(ButtonGroup group, int angle) { |
||||||
|
JRadioButton btn = new JRadioButton(angle+"°"); |
||||||
|
btn.addActionListener(ev -> { |
||||||
|
worker.setRotation(angle); |
||||||
|
}); |
||||||
|
group.add(btn); |
||||||
|
if (angle==150) btn.setSelected(true); |
||||||
|
return btn; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue