import api.APIUtils;
|
import bean.Constant;
|
import bean.TerminalEntity;
|
import checkbox.CheckListCellRenderer;
|
import checkbox.CheckValue;
|
import checkbox.ManyCheckComboBox;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.asm.Label;
|
import com.sun.jna.Memory;
|
import com.sun.jna.Pointer;
|
import com.sun.jna.ptr.IntByReference;
|
import timer.Monitor;
|
|
import javax.swing.*;
|
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeListener;
|
import java.awt.*;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class LabelMain {
|
|
private static List<Integer> ids = new ArrayList<>();
|
|
public static void generatePanel() throws Exception {
|
|
List<TerminalEntity> terminalList = APIUtils.initTerminalList();
|
|
JFrame frame=new JFrame("Ï£ÃÎÒôÖùÈí¼þ");
|
frame.setIconImage(Toolkit.getDefaultToolkit().getImage(LabelMain.class.getResource("icon.png")));
|
frame.setLayout(null);
|
frame.setSize(400,500);
|
frame.setLocationRelativeTo(null);//´°¿ÚÔÚÆÁÄ»ÖмäÏÔʾ
|
|
final JSlider slider = new JSlider(0, 100, 50);
|
slider.setMajorTickSpacing(50);
|
slider.setMinorTickSpacing(1);
|
slider.setPaintTicks(true);
|
slider.setPaintLabels(true);
|
|
JLabel videoText = new JLabel();
|
JLabel loadText = new JLabel();
|
|
// Ìí¼Ó¿Ì¶È¸Ä±ä¼àÌýÆ÷
|
slider.addChangeListener(new ChangeListener() {
|
@Override
|
public void stateChanged(ChangeEvent e) {
|
Integer originVol = Monitor.vol;
|
Monitor.vol = slider.getValue();
|
loadText.setText("ÕýÔÚ²¥·Å,ÒôÁ¿µ÷Õû(µ±Ç°:"+Monitor.vol+")");
|
}
|
});
|
// ÌáʾÎı¾¿ò
|
videoText.setBounds(50,20, 80, 25);
|
videoText.setText("ÒôÁ¿");
|
slider.setBounds(110, 20, 170, 50);
|
slider.setEnabled(false);
|
frame.add(videoText);
|
frame.add(slider);
|
|
|
|
JLabel chooseText = new JLabel();
|
// ÌáʾÎı¾¿ò
|
chooseText.setBounds(100,150, 300, 25);
|
chooseText.setText("ÇëÑ¡ÔñÉ豸");
|
|
// ¼ÓÔØºóÌáʾ
|
loadText.setBounds(50,180, 300, 25);
|
|
JPanel jp=new JPanel(); //´´½¨Ãæ°å
|
JLabel label1=new JLabel("Ñ¡ÔñÉ豸£º"); //´´½¨±êÇ©
|
ManyCheckComboBox manyCheckComboBox = new ManyCheckComboBox();
|
manyCheckComboBox.setRenderer(new CheckListCellRenderer());
|
manyCheckComboBox.setFont(new Font("Dialog", Font.PLAIN, 12));
|
label1.setBounds(50,100,50,50);
|
manyCheckComboBox.setBounds(70,100,200, 50);
|
|
setOnlineDeviceIntoItem(manyCheckComboBox,terminalList);
|
|
|
jp.add(label1);
|
jp.add(manyCheckComboBox);
|
jp.setBounds(50,100,300,50);
|
|
|
JButton jButton = new JButton("Ë¢ÐÂ");
|
|
jButton.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
manyCheckComboBox.removeAllItems();
|
manyCheckComboBox.addItem(new CheckValue(true, "ȫѡ"));
|
// manyCheckComboBox.hidePopup();
|
setOnlineDeviceIntoItem(manyCheckComboBox,APIUtils.initTerminalList());
|
}
|
});
|
jButton.setBounds(100, 350,200,30);
|
|
JButton stopBtn = new JButton("¹Ø±Õ¼àÌý");
|
stopBtn.setEnabled(false);
|
JButton linkBtn = new JButton("¿ªÆôÉù¿¨¼àÌý");
|
JButton micBtn = new JButton("¿ªÆôÂó¿Ë·ç¼àÌý");
|
|
linkBtn.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
manyCheckComboBox.setEnabled(false);
|
linkBtn.setEnabled(false);
|
jButton.setEnabled(false);
|
micBtn.setEnabled(false);
|
stopBtn.setEnabled(true);
|
if(ids.size()!=0){
|
ids.clear();
|
}
|
ArrayList selectItemValues = manyCheckComboBox.getSelectItemValues();
|
for(Object str:selectItemValues) {
|
String string = (String)str;
|
String[] split = string.split(",");
|
String[] split1 = split[0].split(":");
|
Integer id = Integer.parseInt(split1[1]);
|
ids.add(id);
|
}
|
if(ids.size()==0){
|
// stopBtn.setEnabled(false);
|
manyCheckComboBox.setEnabled(true);
|
linkBtn.setEnabled(true);
|
micBtn.setEnabled(true);
|
stopBtn.setEnabled(true);
|
jButton.setEnabled(true);
|
slider.setEnabled(false);
|
loadText.setText("ÇëÑ¡Ôñ²¥·ÅÉ豸");
|
return;
|
}
|
|
System.out.println(JSON.toJSONString(ids));
|
IntByReference intr = new IntByReference();
|
|
int size = ids.size() * 4;
|
|
Pointer mymem = new Memory(size);
|
intr.setPointer(mymem);
|
for(int i=0;i<ids.size();i++){
|
int offset = i * 4;
|
int val = ids.get(i);
|
mymem.setInt(offset,val);
|
}
|
loadText.setText("ÕýÔÚÁ¬½ÓÉ豸£º"+ JSON.toJSONString(ids));
|
chooseText.setText("µ±Ç°Á¬½ÓÉ豸ID£º"+JSON.toJSONString(ids));
|
slider.setEnabled(true);
|
// ÉèÖû¬¿é¼àÌý
|
new Thread(new Monitor(ids,1500)).start();
|
Constant.stopFlag = false;
|
API_DEMO.play(intr,loadText, (short) slider.getValue());
|
linkBtn.setText("Á¬½ÓÖÐ...");
|
}
|
}).start();
|
}
|
});
|
linkBtn.setBounds(100, 200,200,30);
|
stopBtn.setBounds(100, 300,200,30);
|
|
|
micBtn.setBounds(100, 250,200,30);
|
micBtn.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
manyCheckComboBox.setEnabled(false);
|
linkBtn.setEnabled(false);
|
jButton.setEnabled(false);
|
micBtn.setEnabled(false);
|
stopBtn.setEnabled(true);
|
|
if(ids.size()!=0){
|
ids.clear();
|
}
|
ArrayList selectItemValues = manyCheckComboBox.getSelectItemValues();
|
for(Object str:selectItemValues) {
|
String string = (String)str;
|
String[] split = string.split(",");
|
String[] split1 = split[0].split(":");
|
Integer id = Integer.parseInt(split1[1]);
|
ids.add(id);
|
}
|
if(ids.size()==0){
|
// stopBtn.setEnabled(false);
|
manyCheckComboBox.setEnabled(true);
|
linkBtn.setEnabled(true);
|
stopBtn.setEnabled(true);
|
micBtn.setEnabled(true);
|
jButton.setEnabled(true);
|
slider.setEnabled(false);
|
loadText.setText("ÇëÑ¡Ôñ²¥·ÅÉ豸");
|
return;
|
}
|
|
System.out.println(JSON.toJSONString(ids));
|
IntByReference intr = new IntByReference();
|
|
int size = ids.size() * 4;
|
|
Pointer mymem = new Memory(size);
|
intr.setPointer(mymem);
|
for(int i=0;i<ids.size();i++){
|
int offset = i * 4;
|
int val = ids.get(i);
|
mymem.setInt(offset,val);
|
}
|
loadText.setText("ÕýÔÚÁ¬½ÓÉ豸£º"+ JSON.toJSONString(ids));
|
chooseText.setText("µ±Ç°Á¬½ÓÉ豸ID£º"+JSON.toJSONString(ids));
|
slider.setEnabled(true);
|
// ÉèÖû¬¿é¼àÌý
|
new Thread(new Monitor(ids,1500)).start();
|
Constant.stopFlag = false;
|
API_DEMO_MIC.play(intr,loadText, (short) slider.getValue());
|
linkBtn.setText("Á¬½ÓÖÐ...");
|
}
|
}).start();
|
}
|
});
|
|
stopBtn.addActionListener(new ActionListener() {
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
System.out.println("ÉèÖüàÌý±êʶλ");
|
Constant.stopFlag = true;
|
|
manyCheckComboBox.setEnabled(true);
|
linkBtn.setEnabled(true);
|
micBtn.setEnabled(true);
|
stopBtn.setEnabled(true);
|
jButton.setEnabled(true);
|
slider.setEnabled(false);
|
|
manyCheckComboBox.removeAllItems();
|
manyCheckComboBox.addItem(new CheckValue(true, "ȫѡ"));
|
manyCheckComboBox.hidePopup();
|
setOnlineDeviceIntoItem(manyCheckComboBox,APIUtils.initTerminalList());
|
|
loadText.setText("ÖÕÖ¹³É¹¦,ÖØÑ¡ÏàͬÉ豸ÐèÒªµÈ´ýÒ»¶Îʱ¼ä");
|
frame.dispose();
|
try {
|
Thread.sleep(300);
|
LabelMain.generatePanel();
|
} catch (Exception e1) {
|
e1.printStackTrace();
|
}
|
return;
|
}
|
});
|
|
|
|
frame.add(jButton);
|
frame.add(jp);
|
frame.add(linkBtn);
|
frame.add(micBtn);
|
frame.add(loadText);
|
frame.add(stopBtn);
|
frame.add(chooseText);
|
frame.setVisible(true);
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
}
|
|
private static void setOnlineDeviceIntoItem(ManyCheckComboBox cmb, List<TerminalEntity> terminalList) {
|
for(TerminalEntity t: terminalList){
|
if(t.getStatus() == 1){
|
CheckValue cValue = new CheckValue();
|
Integer status = t.getStatus();
|
String value = "id:"+t.getId()+",Ãû³Æ:"+t.getName()+"("+status+")";
|
cValue.value = value;
|
cmb.addItem(cValue);
|
}
|
}
|
}
|
}
|