有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java小程序未显示为已满

我刚刚创建了一个小程序

public class HomeApplet extends JApplet {

    private static final long serialVersionUID = -7650916407386219367L;

    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
//      setSize(400, 400);
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    createGUI();
                }
            });
        } catch (Exception e) { 
            System.err.println("createGUI didn't complete successfully");
        }
    }

    private void createGUI() {
        RconSection rconSection = new RconSection();
        rconSection.setOpaque(true); 

//      CommandArea commandArea = new CommandArea();
//      commandArea.setOpaque(true); 

        JTabbedPane tabbedPane = new JTabbedPane();
//      tabbedPane.setSize(400, 400);
        tabbedPane.addTab("Rcon Details", rconSection);
//      tabbedPane.addTab("Commad Area", commandArea); 


        setContentPane(tabbedPane);       
    }
}

其中第一个选项卡是:

package com.rcon;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.Bean.RconBean;
import com.util.Utility;

public class RconSection extends JPanel implements ActionListener{
    /**
     * 
     */
    private static final long serialVersionUID = -9021500288377975786L;
    private static String TEST_COMMAND = "test";
    private static String CLEAR_COMMAND = "clear";
    private static JTextField ipText = new JTextField();
    private static JTextField portText = new JTextField();
    private static JTextField rPassText = new JTextField();
    //      private DynamicTree treePanel;

    public RconSection() {
//      super(new BorderLayout());
        JLabel ip = new JLabel("IP");
        JLabel port = new JLabel("Port");
        JLabel rPass = new JLabel("Rcon Password");

        JButton testButton = new JButton("Test");
        testButton.setActionCommand(TEST_COMMAND);
        testButton.addActionListener(this);

        JButton clearButton = new JButton("Clear");
        clearButton.setActionCommand(CLEAR_COMMAND);
        clearButton.addActionListener(this);

        JPanel panel = new JPanel(new GridLayout(3,2));
        panel.add(ip);
        panel.add(ipText);
        panel.add(port);
        panel.add(portText);
        panel.add(rPass);
        panel.add(rPassText);

        JPanel panel1 = new JPanel(new GridLayout(1,3));
        panel1.add(testButton);
        panel1.add(clearButton);

        add(panel);
        add(panel1);
//      add(panel, BorderLayout.NORTH);
//      add(panel1, BorderLayout.SOUTH);
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        if(arg0.getActionCommand().equals(TEST_COMMAND)){
            String ip = ipText.getText().trim();
            if(!Utility.checkIp(ip)){
                ipText.requestFocusInWindow();
                ipText.selectAll();
                JOptionPane.showMessageDialog(this,"Invalid Ip!!!");
                return;
            }
            String port = portText.getText().trim();
            if(port.equals("") ||  !Utility.isIntNumber(port)){
                portText.requestFocusInWindow();
                portText.selectAll();
                JOptionPane.showMessageDialog(this,"Invalid Port!!!");
                return;
            }
            String pass = rPassText.getText().trim();
            if(pass.equals("")){
                rPassText.requestFocusInWindow();
                rPassText.selectAll();
                JOptionPane.showMessageDialog(this,"Enter Rcon Password!!!");
                return;
            }
            RconBean rBean = RconBean.getBean();
            rBean.setIp(ip);
            rBean.setPassword(pass);
            rBean.setPort(Integer.parseInt(port));
            if(!Utility.testConnection()){
                rPassText.requestFocusInWindow();
                rPassText.selectAll();
                JOptionPane.showMessageDialog(this,"Invalid Rcon!!!");
                return;
            }else{
                JOptionPane.showMessageDialog(this,"Correct Rcon!!!");
                return;
            }
        }
        else if(arg0.getActionCommand().equals(CLEAR_COMMAND)){
            ipText.setText("");
            portText.setText("");
            rPassText.setText("");
        }
    }
}

它似乎是

applet screenshot

is裁剪了一些数据,以显示完整数据并使小程序不可调整大小。我试过setSize(400, 400);,但它没有帮助内部区域保持不变,外部边界增加


共 (4) 个答案

  1. # 1 楼答案

    JApplet不是窗口,所以在java代码中不能编写JApplet维度。你必须更改跑步设置。我不知道其他ide的具体位置,但在Eclipse中,您可以更改项目属性中的维度->;运行/调试设置->;点击你的发布配置文件(对我来说只有一个主类)>;编辑->;参数。在这里,您可以为小程序选择宽度和高度。保存更改,就可以开始了

  2. # 2 楼答案

    这是你的布局的另一个变化。在源代码中使用@Andrew的标记方法,很容易从命令行进行测试:

    $ /usr/bin/appletviewer HomeApplet.java
    

    enter image description here

    // <applet code='HomeApplet' width='400' height='200'></applet>
    import java.awt.BorderLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JApplet;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    
    public class HomeApplet extends JApplet {
    
        @Override
        public void init() {
            try {
                SwingUtilities.invokeAndWait(new Runnable() {
    
                    @Override
                    public void run() {
                        createGUI();
                    }
                });
            } catch (Exception e) {
                e.printStackTrace(System.err);
            }
        }
    
        private void createGUI() {
            JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.addTab("Rcon1", new RconSection());
            tabbedPane.addTab("Rcon2", new RconSection());
            this.add(tabbedPane);
        }
    
        private static class RconSection extends JPanel implements ActionListener {
    
            private static final String TEST_COMMAND = "test";
            private static final String CLEAR_COMMAND = "clear";
            private JTextField ipText = new JTextField();
            private JTextField portText = new JTextField();
            private JTextField rPassText = new JTextField();
    
            public RconSection() {
                super(new BorderLayout());
                JLabel ip = new JLabel("IP");
                JLabel port = new JLabel("Port");
                JLabel rPass = new JLabel("Rcon Password");
                JButton testButton = new JButton("Test");
                testButton.setActionCommand(TEST_COMMAND);
                testButton.addActionListener(this);
                JButton clearButton = new JButton("Clear");
                clearButton.setActionCommand(CLEAR_COMMAND);
                clearButton.addActionListener(this);
                JPanel panel = new JPanel(new GridLayout(3, 2));
                panel.add(ip);
                panel.add(ipText);
                panel.add(port);
                panel.add(portText);
                panel.add(rPass);
                panel.add(rPassText);
                JPanel buttons = new JPanel(); // default FlowLayout
                buttons.add(testButton);
                buttons.add(clearButton);
                add(panel, BorderLayout.NORTH);
                add(buttons, BorderLayout.SOUTH);
            }
    
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(e);
            }
        }
    }
    
  3. # 3 楼答案

    正如我在评论中提到的,这个问题实际上是关于how to layout components in a container。本例假定您希望向文本字段和标签添加额外的空间。小程序的大小在HTML中设置

    200x130FixedSizeLayout fixed at 200x130200x150FixedSizeLayout fixed at 200x150

    /*
    <applet
      code='FixedSizeLayout'
      width='200'
      height='150'>
    </applet>
    */
    import java.awt.*;
    import javax.swing.*;
    
    public class FixedSizeLayout extends JApplet {
        public void init() {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    initGui();
                }
            });
        }
    
        private void initGui() {
            JTabbedPane tb = new JTabbedPane();
            tb.addTab("Rcon Details", new RconSection());
    
            setContentPane(tb);
            validate();
        }
    }
    
    class RconSection extends JPanel {
        private static String TEST_COMMAND = "test";
        private static String CLEAR_COMMAND = "clear";
        private static JTextField ipText = new JTextField();
        private static JTextField portText = new JTextField();
        private static JTextField rPassText = new JTextField();
    
        public RconSection() {
            super(new BorderLayout(3,3));
            JLabel ip = new JLabel("IP");
            JLabel port = new JLabel("Port");
            JLabel rPass = new JLabel("Rcon Password");
    
            JButton testButton = new JButton("Test");
            testButton.setActionCommand(TEST_COMMAND);
    
            JButton clearButton = new JButton("Clear");
            clearButton.setActionCommand(CLEAR_COMMAND);
    
            JPanel panel = new JPanel(new GridLayout(3,2));
            panel.add(ip);
            panel.add(ipText);
            panel.add(port);
            panel.add(portText);
            panel.add(rPass);
            panel.add(rPassText);
    
            JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
            panel1.add(testButton);
            panel1.add(clearButton);
    
            add(panel, BorderLayout.CENTER);
            add(panel1, BorderLayout.SOUTH);
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    Container c = new RconSection();
                    JOptionPane.showMessageDialog(null, c);
                }
            });
        }
    }
    
  4. # 4 楼答案

    小程序查看器的大小不取决于您的代码