隐形GUI? (Java)(Swing)
发布时间:2020-12-15 05:10:10 所属栏目:Java 来源:网络整理
导读:我正在研究这个程序,使用swing.每次导出程序并运行它时,我都会尝试设置的GUI. JFrame可以,但不是内部组件.提前谢谢?艾利斯 码: import java.awt.Graphics2D;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Image;impor
我正在研究这个程序,使用swing.每次导出程序并运行它时,我都会尝试设置的GUI. JFrame可以,但不是内部组件.提前谢谢?艾利斯
码: import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class Login { public static void login_Interface(){ //Start GUI style// try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (UnsupportedLookAndFeelException e1) { e1.printStackTrace(); } // End // JFrame login_Frame = new JFrame("Login - LetsMeet"); login_Frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); login_Frame.setSize(750,650); login_Frame.setResizable(true); JPanel panel_Title = new JPanel(); //PANEL Title panel_Title.setBounds(0,750,150); panel_Title.setLayout(null); Image logo = null; try { logo = ImageIO.read(new File("Data/images/logo_letsmeet.png")); } catch (IOException e) { e.printStackTrace(); } Graphics2D logo_out = ((BufferedImage) logo).createGraphics(); panel_Title.paint(logo_out); JPanel login_Panel = new JPanel(); //LOGIN Panel login_Panel.setBounds(0,150,350,150); login_Panel.setLayout(null); JTextField username_login = new JTextField("Username"); username_login.setBounds(100,50,100,25); JPasswordField password_login = new JPasswordField(); password_login.setBounds(200,25); JButton login_go = new JButton("Login"); login_go.setBounds(200,25); login_Panel.add(password_login); login_Panel.add(username_login); JPanel panel_Divider = new JPanel(); //PANEL Divider login_Panel.setBounds(350,150); panel_Divider.setSize(50,100); panel_Divider.setLayout(null); Image sep = null; try { sep = ImageIO.read(new File("Data/images/sep.png")); } catch (IOException e) { e.printStackTrace(); } Graphics2D div = ((BufferedImage) sep).createGraphics(); panel_Title.paint(div); JPanel register_Panel = new JPanel(); //REGISTER Panel register_Panel.setBounds(400,150); register_Panel.setLayout(null); login_Frame.add(panel_Title); login_Frame.add(login_Panel); login_Frame.add(panel_Divider); login_Frame.add(register_Panel); login_Frame.setVisible(true); } } 错误:无 解决方法
除了@MadProgammer提出的所有建议外,您还需要将控件添加到JFrame内容窗格,如下所示:
login_Frame.getContentPane().add(panel_Title); login_Frame.getContentPane().add(login_Panel); ... 然后你的控件应该出现 更新: 运行您的实际代码,并为容器(JPanels)添加彩色边框,我得到以下内容: panel_Title.setBorder(BorderFactory.createLineBorder(Color.BLUE)); login_Panel.setBorder(BorderFactory.createLineBorder(Color.RED)); panel_Divider.setBorder(BorderFactory.createLineBorder(Color.GREEN)); register_Panel.setBorder(BorderFactory.createLineBorder(Color.YELLOW)); 基本上你的代码有布局配置问题.再次,按照@MadProgammer的建议.您可以在将来使用此边框技巧来调试布局 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |