#java #html #swing #jar
#Ява #HTML #качать #кувшин
Вопрос:
Я знаю, что на супер общие вопросы смотрят неодобрительно, но я действительно не знаю, как еще это понять. Я создал графический интерфейс java swing (я опущу код внизу), который работает в качестве оценщика для строительных работ. Он отлично работает в Eclipse, где я его написал, но я пытаюсь понять, как встроить графический интерфейс на свой веб-сайт. Я использую square online для создания своего веб-сайта, и у них есть функция, с помощью которой вы можете добавлять код; для этого не так много документации, но, похоже, она хочет, чтобы встраивание было написано в HTML. Я пытался найти какие-то ресурсы, чтобы помочь мне в этом, но все, что я видел, либо зависит от чего-то, что больше не работает, либо упускает важные детали.
Я превратил графический интерфейс в файл .jar через Eclipse, и я вижу, что он загружен в мою ОС, но это все, что я получил. У меня также установлен OpenWebStart для одного из ресурсов, которые я использовал, но я, честно говоря, не знаю, как его использовать, и тоже не могу этого понять.
Я не уверен, что это трудно или легко сделать в целом, так что извините, если я прошу многого. Если вы знаете какую-либо хорошую документацию, которую я могу использовать для этого, достаточно будет просто ссылки. Спасибо!
Код: (ПРИМЕЧАНИЕ: основная функция графического интерфейса один раз ссылается на другой файл в той же папке, не уверен, что мне нужно как-то добавить это во встраивание, я добавлю его под кодом на всякий случай,)
package packagepackage; import java.awt.EventQueue; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.text.AttributeSet.ColorAttribute; public class Test { public static void main(String[] args) { new Test(); } public Test() { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.add(new TestPane()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class TestPane extends JPanel { public JLabel tLabel; public JTextField linear; public JLabel liLabel; public JComboBoxlt;Stringgt; sump; public JLabel suLabel; public JComboBoxlt;Stringgt; elec; public JLabel elLabel; public JTextField prep; public JLabel prLabel; public JTextField estimate; public JLabel esLabel; public TestPane() { try { for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (Exception e) { // If Nimbus is not available, you can set the GUI to another look and feel. } setLayout(new GridBagLayout()); setBackground(Color.BLACK); setBorder(BorderFactory.createEmptyBorder(16, 16, 16, 16)); GridBagConstraints c = new GridBagConstraints(); String title = "Craftsman Peak Drain Tile Calculator"; tLabel = new JLabel(title, JLabel.CENTER); tLabel.setForeground(Color.WHITE); c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 0.5; c.ipady = 40; c.gridwidth = GridBagConstraints.REMAINDER; c.anchor = GridBagConstraints.CENTER; c.gridx = 0; c.gridy = 0; add(tLabel, c); c = new GridBagConstraints(); c.anchor = GridBagConstraints.LINE_END; c.gridy = 1; c.gridx = 0; liLabel = new JLabel("Basement Perimeter Length (ft.):"); liLabel.setForeground(Color.WHITE); prLabel = new JLabel("Time needed to prepare site (min.):"); prLabel.setForeground(Color.WHITE); suLabel = new JLabel("Using:"); suLabel.setForeground(Color.WHITE); elLabel = new JLabel("Electrical outlet:"); elLabel.setForeground(Color.WHITE); add(liLabel, c); c.gridy ; add(prLabel, c); c.gridy ; add(suLabel, c); c.gridy ; add(elLabel, c); linear = new JTextField(10); linear.setBackground(Color.BLUE); linear.setForeground(Color.YELLOW); prep = new JTextField(10); prep.setBackground(Color.BLUE); prep.setForeground(Color.YELLOW); String[] sumpo = {"New sump pump", "Existing sump pump"}; sump = new JComboBoxlt;gt;(sumpo); sump.setBackground(Color.BLUE); sump.setForeground(Color.YELLOW); String[] electo = {"There is no outlet within 6 feet of the sump pump", "There is an outlet nearby, or I do not need a new pump"}; elec = new JComboBoxlt;gt;(electo); elec.setBackground(Color.BLUE); elec.setForeground(Color.YELLOW); c.anchor = GridBagConstraints.LINE_START; c.gridx ; c.gridy = 1; add(linear, c); c.gridy ; add(prep, c); c.gridy ; add(sump, c); c.gridy ; add(elec, c); JButton calculate = new JButton("Calculate"); calculate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event){ // TODO Auto-generated method stub Integer linVar = Integer.parseInt(linear.getText()); Integer feet = Integer.parseInt(linear.getText()); linVar *= 13; Object sumps = sump.getSelectedItem(); Integer sumpVar = 0; if("New sump pump".equals(sumps)) { sumpVar = 260;} Object elecs = elec.getSelectedItem(); Integer elecsVar = 0; if("There is no outlet within 6 feet of the sump pump".equals(elecs)) { elecsVar = 280;} Integer prepsVar = Integer.parseInt(prep.getText()); prepsVar = 30; prepsVar *= 235; prepsVar /= 100; linVar = sumpVar = elecsVar = prepsVar; /* overhead*/ linVar = 2828; /* tax */ linVar *= 11; linVar /= 10; /* margin */ linVar *= 12; linVar /= 10; /* adjustments*/ Integer adjOne = 300; Integer adjTwo = adjOne -= feet; adjTwo *= 2; adjTwo = 100; linVar = adjTwo; String toWords = " $" String.valueOf(linVar); estimate.setUI(new HintTextFieldUI(toWords, true)); } }); c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.insets = new Insets(10, 0, 10, 0); c.gridwidth = GridBagConstraints.REMAINDER; c.gridx = 0; c.gridy = 5; add(calculate, c); calculate.setBackground(Color.BLUE); calculate.setForeground(Color.YELLOW); c = new GridBagConstraints(); c.gridx = 0; c.gridy = 6; c.anchor = GridBagConstraints.LINE_END; esLabel = new JLabel("Estimated Cost:"); esLabel.setForeground(Color.WHITE); estimate = new JTextField(10); estimate.setBackground(Color.BLUE); estimate.setForeground(Color.YELLOW); add(esLabel, c); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; add(estimate, c); // linear.setUI(new HintTextFieldUI("Perimeter length", true)); // prep.setUI(new HintTextFieldUI("Minutes of preptime", true)); } } }
package packagepackage; import java.awt.Color; import java.awt.Graphics; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import javax.swing.plaf.basic.BasicTextFieldUI; import javax.swing.text.JTextComponent; public class HintTextFieldUI extends BasicTextFieldUI implements FocusListener { private String hint; private boolean hideOnFocus; private Color color; public Color getColor() { return color; } public void setColor(Color color) { this.color = color; repaint(); } private void repaint() { if(getComponent() != null) { getComponent().repaint(); } } public boolean isHideOnFocus() { return hideOnFocus; } public void setHideOnFocus(boolean hideOnFocus) { this.hideOnFocus = hideOnFocus; repaint(); } public String getHint() { return hint; } public void setHint(String hint) { this.hint = hint; repaint(); } public HintTextFieldUI(String hint) { this(hint,false); } public HintTextFieldUI(String string, boolean hideOnFocus) { this(string,hideOnFocus, null); } public HintTextFieldUI(String hint, boolean hideOnFocus, Color color) { this.hint = hint; this.hideOnFocus = hideOnFocus; this.color = color; } @Override protected void paintSafely(Graphics g) { super.paintSafely(g); JTextComponent comp = getComponent(); if(hint!=null amp;amp; comp.getText().length() == 0 amp;amp; (!(hideOnFocus amp;amp; comp.hasFocus()))){ if(color != null) { g.setColor(color); } else { g.setColor(comp.getForeground().brighter().brighter().brighter()); } int padding = (comp.getHeight() - comp.getFont().getSize())/2; g.drawString(hint, 2, comp.getHeight()-padding-1); } } @Override public void focusGained(FocusEvent e) { if(hideOnFocus) repaint(); } @Override public void focusLost(FocusEvent e) { if(hideOnFocus) repaint(); } @Override protected void installListeners() { super.installListeners(); getComponent().addFocusListener(this); } @Override protected void uninstallListeners() { super.uninstallListeners(); getComponent().removeFocusListener(this); } }
Комментарии:
1.«Путь» раньше был «апплетами». Но апплеты были устаревшими и удалены из API в Java 9. Javascript хорош для выполнения основной работы с веб-интерфейсами. Редактировать: «У меня установлен OpenWebStart» более точный способ сказать, что мой первый комментарий заключается в том, что плагин Java (который позволяет использовать как апплеты, так и веб-запуск) устарел. так что это тоже бесполезно. «Я не уверен, трудно или легко это сделать» — Не столько «трудно» или «легко», сколько невыполнимо.
2. Итак, если апплеты и веб-запуск больше не работают, как я могу встроить свой графический интерфейс java? Нужно ли мне тогда переписывать все это в JS? Наверное, я в замешательстве, потому что если люди все еще пишут что-то в Java IDE, то как они на самом деле реализуют код?
3. А? Я спросил, как что-то сделать, вы сказали, что это невыполнимо, и я пытаюсь понять, что мне нужно сделать, чтобы достичь своей цели-поместить графический интерфейс, который я создал на своем веб-сайте, в качестве встраиваемого
4. Один из нас очень растерян. Возможно, мы оба. ОТО только один из нас на самом деле заботится о том, добьетесь ли вы этого. Со своей стороны, я слишком занят, чтобы разбираться в этом беспорядке.
5. Вы не можете встроить свой графический интерфейс Swing в веб — страницу. Это невозможно объяснить здесь по слишком многим причинам. Это невозможно. Я уже говорил, что это невозможно.