Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Додаток Г. Програмний код класу GUIСодержание книги
Поиск на нашем сайте
import javax.swing.*; import java.awt.*; import java.net.*; import java.io.*; import java.util.*; import java.awt.image.BufferedImage; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.imageio.ImageIO; import javax.swing.table.DefaultTableModel; import java.text.SimpleDateFormat; import org.swixml.SwingEngine; import static org.math.array.DoubleArray.*; public class GUI { private static XMLInterface xml; private static Controller c; private static int [] uplimits,downlimits; private JFrame mainDialog,aboutDialog,graphDialog,zadDialog; private JPanel graphPanel; private JTextPane about_txtDescr; private JLabel picLabel; private JButton btn_start, btn_contol, btn_graph, btn_z1, btn_about; private JButton cmdChangeMode, cmdShowGraph; private JProgressBar pry1, pry2, pru1, pru2; private JLabel lby1, lby2; private JSpinner spu1, spu2, spz1,spz2; private JTable logTable; private DefaultTableModel tablemodel; private javax.swing.Timer timer; private static final String MAIN_DESCRIPTOR="forms/main_window.xml"; private static final String ABOUT_DESCRIPTOR="forms/about.xml"; private static final String GRAPH_DESCRIPTOR="forms/graph.xml"; private static final String ZAD_DESCRIPTOR="forms/zad_window.xml"; private static final String SCHEME_FILE="img/tech_scheme.png"; private static final String HTML_FILE="docs/description.html"; private static final String CONTENT_TYPE="text/html; charset=utf-8"; private SwingEngine swix=new SwingEngine (this); public void logEvent (String msgtype, String msgtext) { String TIME_FORMAT_NOW = "HH: mm: ss"; String DATE_FORMAT_NOW = "dd. MM. yy"; Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf1 = new SimpleDateFormat(TIME_FORMAT_NOW); SimpleDateFormat sdf2 = new SimpleDateFormat(TIME_FORMAT_NOW); String[] data = {sdf1.format (cal.getTime()), sdf2.format (cal.getTime()), msgtype, msgtext}; tablemodel.addRow (data); }
public void initMainDialog() throws Exception { try { mainDialog=(JFrame)swix.render(MAIN_DESCRIPTOR); mainDialog.setResizable(false); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-mainDialog.getWidth())/2; final int y=(screenSize.height-mainDialog.getHeight())/2; mainDialog.setLocation(x,y); BufferedImage myPicture=ImageIO.read(new File(SCHEME_FILE)); picLabel.setIcon(new ImageIcon(myPicture)); SpinnerModel sm1=new SpinnerNumberModel(70,0,100,1); SpinnerModel sm2=new SpinnerNumberModel(70,0,100,1); spu1.setModel(sm1); spu2.setModel(sm2); tablemodel = new DefaultTableModel () { @Override public boolean isCellEditable (int row, int column) { return false; }; }; tablemodel.addColumn("Час"); tablemodel.addColumn("Дата"); tablemodel.addColumn("Тип"); tablemodel.addColumn("Повідомлення"); logTable.setModel(tablemodel); logTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); logTable.getColumnModel().getColumn(0).setMaxWidth(80); logTable.getColumnModel().getColumn(0).setMinWidth(80); logTable.getColumnModel().getColumn(0).setWidth(80); logTable.getColumnModel().getColumn(0).setPreferredWidth(80); logTable.getColumnModel().getColumn(1).setMaxWidth(80); logTable.getColumnModel().getColumn(1).setMinWidth(80); logTable.getColumnModel().getColumn(1).setWidth(80); logTable.getColumnModel().getColumn(1).setPreferredWidth(80); logTable.getColumnModel().getColumn(2).setMaxWidth(120); logTable.getColumnModel().getColumn(2).setMinWidth(120); logTable.getColumnModel().getColumn(2).setWidth(120); logTable.getColumnModel().getColumn(2).setPreferredWidth(120); } catch (Exception e) { System.out.println ("Error in main"); e.printStackTrace(); } }
public void initAboutDialog() throws Exception { aboutDialog=(JFrame)swix.render(ABOUT_DESCRIPTOR); aboutDialog.setResizable(false); aboutDialog.setAlwaysOnTop(true); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-aboutDialog.getWidth())/2; final int y=(screenSize.height-aboutDialog.getHeight())/2; aboutDialog.setLocation(x,y); Stringfilename=this.getClass().getClassLoader().getResource(HTML_FILE).toString(); about_txtDescr.setContentType(CONTENT_TYPE); about_txtDescr.setPage(new URL(filename)); } public void initZadDialog() throws Exception { zadDialog=(JFrame)swix.render(ZAD_DESCRIPTOR); zadDialog.setResizable(false); zadDialog.setAlwaysOnTop(true); final Toolkit toolkit=Toolkit.getDefaultToolkit(); final Dimension screenSize=toolkit.getScreenSize(); final int x=(screenSize.width-zadDialog.getWidth())/2; final int y=(screenSize.height-zadDialog.getHeight())/2; zadDialog.setLocation(x,y); double ynom[]=XMLInterface.getYnom(); int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); SpinnerModel sm1=new SpinnerNumberModel (ynom[0],downlimits[0], uplimits[0],1); SpinnerModel sm2=new SpinnerNumberModel (ynom[1],downlimits[1], uplimits[1],1); spz1.setModel(sm1); spz2.setModel(sm2); } public GUI() { try { initAboutDialog(); initMainDialog(); initPlotDialog(); initZadDialog(); mainDialog.setVisible(true); javax.swing.Timer t= new javax.swing.Timer(1000,new ClockListener()); t.start(); logEvent("Управління","процесзапущено"); logEvent("Управління","Контролервключено"); } catch(Exception e) { System.out.println ("error in gui"); e.printStackTrace(); } } public void initPlotDialog()throws Exception { int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); graphDialog=(JFrame) swix.render(GRAPH_DESCRIPTOR); graphDialog.setContentPane(Graph.createGraphPanel());//(downlimits[0], uplimits[0],downlimits[1], uplimits[1])); } public Action AC_MANUAL=new AbstractAction() { public void actionPerformed(ActionEvent e) { if(!c.getManual()) logEvent("Управление","Контроллеротключен"); else logEvent("Управление","Контроллер включен"); c.setManual(!c.getManual()); if(c.getManual()) cmdChangeMode.setText("включитьконтроллер"); else cmdChangeMode.setText("отключитьконтроллер"); } }; public Action AC_CLOSE_ABOUTDIALOG=new AbstractAction() { public void actionPerformed(ActionEvent e) { aboutDialog.setVisible(false); } }; public Action AC_ABOUT=new AbstractAction() { public void actionPerformed(ActionEvent e) { aboutDialog.setVisible(true); } }; public Action AC_GRAPH=new AbstractAction() { public void actionPerformed(ActionEvent e) { graphDialog.setVisible(true); } }; public Action AC_ZAD=new AbstractAction() { public void actionPerformed(ActionEvent e) { zadDialog.setVisible(true); } }; public Action AC_WORK=new AbstractAction() { public void actionPerformed(ActionEvent e) { if(c.getWork()) logEvent ("Управлiння","Процесзупинений"); else logEvent("Управлiння","Процес запущено"); c.setWork(!c.getWork()); } }; public Action AC_SETZ=new AbstractAction() { public void actionPerformed(ActionEvent e) { double ynom[]=XMLInterface.getYnom(); c.setZ(Double.valueOf(spz1.getValue().toString())-ynom[0],0); c.setZ(Double.valueOf(spz2.getValue().toString())-ynom[1],1); zadDialog.setVisible(false); } }; class ClockListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(c.getWork()) { double ynom[]=XMLInterface.getYnom(); double unom[]=XMLInterface.getUnom(); int uplimits[]=XMLInterface.getUplimits(); int downlimits[]=XMLInterface.getDownlimits(); lby1.setText(String.format("%.2f",c.getY(0)+ynom[0])); lby2.setText(String.format("%.2f",c.getY(1)+ynom[1])); pry1.setMaximum(uplimits[0]); pry1.setMinimum(downlimits[0]); pry1.setValue((int)(c.getY(0)+ynom[0])); pry2.setMaximum(uplimits[1]); pry2.setMinimum(downlimits[1]); pry2.setValue((int)(c.getY(1)+ynom[1])); Graph.addY(c.getY(0)+ynom[0],c.getY(1)+ynom[1]); if((c.getY(0)+ynom[0])>uplimits[0]||(c.getY(0)+ynom[0])<downlimits[0]) { if(pry1.isVisible())logEvent("Аварийное","Параметр у1 вышел за регламент"); pry1.setVisible(false); lby1.setForeground(Color.red); } else { if(!pry1.isVisible())logEvent("Аварийное","Параметру1 вернулсяврегламент"); pry1.setVisible(true); lby1.setForeground(Color.black); pry1.setMaximum(uplimits[0]); pry1.setMinimum(downlimits[0]); pry1.setValue((int)(c.getY(0)+ynom[0])); } if(Controller.getManual()) { spu1.setEnabled(false); c.setU(Double.valueOf(spu1.getValue().toString())-unom[0],0); spu2.setEnabled(false); c.setU(Double.valueOf(spu2.getValue().toString())-unom[1],1); } else { spu1.setEnabled(false); spu2.setEnabled(false); spu1.setValue(c.getU(0)+unom[0]); spu2.setValue(c.getU(1)+unom[1]);
} } } } }
|
||||
|
Последнее изменение этой страницы: 2016-09-20; просмотров: 242; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.20 (0.008 с.) |