Hallo Zusammen
Ich möchte mittels GUI +/- 165 LED's einzeln ansteuern.
So das wenn ich bei einem Lend in der Liste den Hacken setze das dazugehörige LED angeht und beim wegnehmen wieder ausgeht.
Ich habe ein GUI mit einer Länderliste inkl. CHeckboxen erzeugt nun habe ich ein Problem mit dem aufrufen der LED.
Leider komme ich da nicht wirklich weiter.
z.B.: Wie kann ich die beiden "main" zusammenfügen?
Wie müssen die Anordnungen der einzelnen Abschnitte sein?
Oder kann man das eine Programm im anderen aufrufen lassen?
Anbei dei beiden Programme GUI und LED:
GUI Code :
LED Code:
Danke schon im Voraus für eure Hilfe.
Gruss
DiegoSan
Ich möchte mittels GUI +/- 165 LED's einzeln ansteuern.
So das wenn ich bei einem Lend in der Liste den Hacken setze das dazugehörige LED angeht und beim wegnehmen wieder ausgeht.
Ich habe ein GUI mit einer Länderliste inkl. CHeckboxen erzeugt nun habe ich ein Problem mit dem aufrufen der LED.
Leider komme ich da nicht wirklich weiter.
z.B.: Wie kann ich die beiden "main" zusammenfügen?
Wie müssen die Anordnungen der einzelnen Abschnitte sein?
Oder kann man das eine Programm im anderen aufrufen lassen?
Anbei dei beiden Programme GUI und LED:
GUI Code :
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckCombo implements ActionListener {
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
CheckComboStore store = (CheckComboStore)cb.getSelectedItem();
CheckComboRenderer ccr = (CheckComboRenderer)cb.getRenderer();
ccr.checkBox.setSelected((store.state = !store.state));
//gibt Werte (id+state) der CheckBoxen in Coinsole wider
System.out.print(cb.getSelectedIndex());
System.out.print(store.state);
}
// zuordnen Checkboxen Beschriftungen und Werte(state: true/false)
private JPanel getContent() {
String[] ids = { "Afghanistan","Ägypten","Albanien","Algerien"};
Boolean[] values = { Boolean.TRUE, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE };
//erzeugen der Checkboxen in der Liste
CheckComboStore[] stores = new CheckComboStore[ids.length];
for(int j = 0; j < ids.length; j++)
stores[j] = new CheckComboStore(ids[j], values[j]);
JComboBox combo = new JComboBox(stores);
combo.setBounds(10, 5, 264, 30);
combo.setRenderer(new CheckComboRenderer());
combo.addActionListener(this);
JPanel panel = new JPanel();
panel.add(combo);
return panel;
}
// erzeugen des Rahmen
public static void main(String[] args){
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new CheckCombo().getContent());
f.setSize(300,160);
f.setLocation(200,200);
f.setVisible(true);
}
}
/** adapted from comment section of ListCellRenderer api */
//erzeugen der Liste mit Checkboxen
class CheckComboRenderer implements ListCellRenderer {
JCheckBox checkBox;
public CheckComboRenderer() {
checkBox = new JCheckBox();
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
CheckComboStore store = (CheckComboStore)value;
checkBox.setText(store.id);
checkBox.setSelected(((Boolean)store.state).booleanValue());
checkBox.setBackground(isSelected ? Color.red : Color.white);
checkBox.setForeground(isSelected ? Color.white : Color.black);
return checkBox;
}
}
// generieren der Werte für die Checkboxen
class CheckComboStore {
String id;
Boolean state;
public CheckComboStore(String id, Boolean state)
{
this.id = id;
this.state = state;
}
}
LED Code:
Java:
import com.tinkerforge.IPConnection;
import com.tinkerforge.BrickletLEDStrip;
public class LEDSTRIP {
private static final String HOST = "Traveler";
private static final int PORT = 4223;
private static final String UID = "oYj"; // Change to your UID
// Note: To make the example code cleaner we do not handle exceptions. Exceptions you
// might normally want to catch are described in the documentation
public static void main(String args[]) throws Exception {
IPConnection ipcon = new IPConnection(); // Create IP connection
BrickletLEDStrip ls = new BrickletLEDStrip(UID, ipcon); // Create device object
ipcon.connect(HOST, PORT); // Connect to brickd
// Don't use device before ipcon is connected
// Set first 10 LEDs to green
short[] r = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
short[] g = {255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
short[] b = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
ls.setRGBValues(0, (short)1, r, g, b);
System.out.println("Press key to exit"); System.in.read();
ipcon.disconnect();
}
}
Danke schon im Voraus für eure Hilfe.
Gruss
DiegoSan
Zuletzt bearbeitet von einem Moderator: