执行4个接口,Java硬编码中必须只有3个接口

时间:2019-05-29 15:52:43

标签: java swing user-interface

用于坦克水位观测器的Java硬编码项目。我想知道重复界面的原因是什么。我只需要b'c3RyaW5nZmllbGREYXRh'ValueAlarm接口。

这是使用Water_Tank

的Java硬代码

我也尝试过Netbeans。

Geany 1.26

我希望只有3个名为package waterlvlobserver; import java.awt.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; interface WaterLevelObserver { public void update(int waterLevel); } class watertank extends javax.swing.JFrame implements WaterLevelObserver { public void update(int waterLevel) { } private JLabel watertanklbl; private JSlider slider; private JLabel dicrease; private JLabel increase; public watertank() { setSize(300, 300); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setLocationRelativeTo(null); JPanel watertank1 = new JPanel(new FlowLayout()); watertanklbl = new JLabel("Water Tank"); watertanklbl.setFont(new Font("", 1, 20)); watertanklbl.setHorizontalAlignment(JLabel.CENTER); watertank1.add(watertanklbl); add("North", watertank1); JPanel center = new JPanel(new FlowLayout()); dicrease = new JLabel("-"); dicrease.setFont(new Font("", 1, 20)); center.add(dicrease); slider = new JSlider(); center.add(slider); add(center); Splitter v = new Splitter(); Alarm a = new Alarm(); slider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent evt) { int x = slider.getValue(); String y = Integer.toString(x); v.getValuetxt().setText(y); if (x > 50) { a.getOnbtn().setEnabled(true); a.getOffbtn().setEnabled(false); } else { a.getOnbtn().setEnabled(false); a.getOffbtn().setEnabled(true); } } }); setVisible(true); pack(); } } class Splitter extends javax.swing.JFrame implements WaterLevelObserver { public void update(int waterLevel) { } private final JLabel valuelbl; private JTextField valuetxt; Splitter() { setSize(300, 300); setLocationRelativeTo(null); setDefaultCloseOperation(DISPOSE_ON_CLOSE); valuelbl = new JLabel("Value"); valuelbl.setHorizontalAlignment(JLabel.CENTER); valuelbl.setFont(new Font("", 1, 20)); add("North", valuelbl); JPanel txtpnl = new JPanel(); valuetxt = new JTextField(10); valuetxt.setHorizontalAlignment(JTextField.CENTER); txtpnl.add(valuetxt); add("Center", txtpnl); setVisible(true); pack(); } public JTextField getValuetxt() { return valuetxt; } public void setValuetxt(JTextField valuetxt) { this.valuetxt = valuetxt; } } class Alarm extends javax.swing.JFrame implements WaterLevelObserver { public void update(int waterLevel) { } private JButton onbtn; private JButton offbtn; private JLabel alarmlbl; Alarm() { setSize(300, 300); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setLocationRelativeTo(null); alarmlbl = new JLabel("Alarm"); alarmlbl.setHorizontalAlignment(JLabel.CENTER); alarmlbl.setFont(new Font("", 1, 20)); add("North", alarmlbl); JPanel center = new JPanel(new FlowLayout(FlowLayout.CENTER)); onbtn = new JButton("ON"); center.add(onbtn); offbtn = new JButton("OFF"); center.add(offbtn); add("Center", center); pack(); setVisible(true); } public JButton getOnbtn() { return onbtn; } public void setOnbtn(JButton onbtn) { this.onbtn = onbtn; } public JButton getOffbtn() { return offbtn; } public void setOffbtn(JButton offbtn) { this.offbtn = offbtn; } public JLabel getAlarmlbl() { return alarmlbl; } public void setAlarmlbl(JLabel alarmlbl) { this.alarmlbl = alarmlbl; } } class ControlRoom { private final ArrayList <WaterLevelObserver> observerList = new ArrayList<> (); private int waterLevel; public void addWaterLevelObserver(WaterLevelObserver observer) { observerList.add(observer); } public void notifyWaterLevelObservers() { observerList.forEach((observer) -> { observer.update(waterLevel); }); } public void setWaterLevel(int waterLevel) { if (this.waterLevel! = waterLevel) { this.waterLevel = waterLevel; notifyWaterLevelObservers(); } } } public class Demo { public static void main(String args[]) { ControlRoom controlroom = new ControlRoom(); controlroom.addWaterLevelObserver(new watertank()); controlroom.addWaterLevelObserver(new Alarm()); controlroom.addWaterLevelObserver(new Splitter()); } } ValueAlarm的接口。但是也有重复的Water_TankValue接口。

0 个答案:

没有答案