当我 运行 时,我的 JRadioButton 不显示,但是当我单击该区域时它显示
My JRadioButton does not shows when I run but when I click on that area it shows
您好,当我 运行 我的简单 swing 应用程序时,我在 netbeans 8.1 中遇到了这个问题。我的框架只显示一个单选按钮和第二个单选按钮,当我 select 在它显示的那个区域时,当我 deselect 它消失。
检查下面的图片
When I run my swing application
When I click on the radio button area it shows
源代码:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
public class MainClass {
private JFrame mainFrame;
private JRadioButton radStudent,radTeacher;
public MainClass(){ //Constructor of main class
prepareGUI();
}
public static void main(String arg[]){
MainClass main = new MainClass();
}
private void prepareGUI(){ //GUI
mainFrame = new JFrame("Select any one");
mainFrame.setSize(300,200);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
//Frame position set
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int height = screenSize.height;
int width = screenSize.width;
mainFrame.setLocationRelativeTo(null);
//radio for employee
radStudent = new JRadioButton("Student");
radStudent.setBounds(10,10,100,20);
//radio for Teachers
radTeacher = new JRadioButton("Teacher");
radTeacher.setBounds(110,10,100,20);
mainFrame.add(radStudent);
mainFrame.add(radTeacher);
}
}
提前致谢!!
事实是:您必须了解 JFrame 使用 LayoutManager 来组织您 添加 的项目它。
正在将您的代码更改为
mainFrame.add(radStudent, BorderLayout.PAGE_START);
mainFrame.add(radTeacher, BorderLayout.PAGE_END);
会给你一个框架,在顶部显示一个按钮;另一个位于 window 的底部(因为默认情况下,JFrame 使用 BorderLayout 来组织其子项)。
换句话说:一旦您想使用多个组件,就必须先坐下来思考如何组织这些组件。然后 select LayoutManager,例如 BorderLayout,它提供了到达您决定使用的 "structure" 的最简单方法。
您好,当我 运行 我的简单 swing 应用程序时,我在 netbeans 8.1 中遇到了这个问题。我的框架只显示一个单选按钮和第二个单选按钮,当我 select 在它显示的那个区域时,当我 deselect 它消失。 检查下面的图片
When I run my swing application
When I click on the radio button area it shows
源代码:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
public class MainClass {
private JFrame mainFrame;
private JRadioButton radStudent,radTeacher;
public MainClass(){ //Constructor of main class
prepareGUI();
}
public static void main(String arg[]){
MainClass main = new MainClass();
}
private void prepareGUI(){ //GUI
mainFrame = new JFrame("Select any one");
mainFrame.setSize(300,200);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
//Frame position set
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int height = screenSize.height;
int width = screenSize.width;
mainFrame.setLocationRelativeTo(null);
//radio for employee
radStudent = new JRadioButton("Student");
radStudent.setBounds(10,10,100,20);
//radio for Teachers
radTeacher = new JRadioButton("Teacher");
radTeacher.setBounds(110,10,100,20);
mainFrame.add(radStudent);
mainFrame.add(radTeacher);
}
}
提前致谢!!
事实是:您必须了解 JFrame 使用 LayoutManager 来组织您 添加 的项目它。
正在将您的代码更改为
mainFrame.add(radStudent, BorderLayout.PAGE_START);
mainFrame.add(radTeacher, BorderLayout.PAGE_END);
会给你一个框架,在顶部显示一个按钮;另一个位于 window 的底部(因为默认情况下,JFrame 使用 BorderLayout 来组织其子项)。
换句话说:一旦您想使用多个组件,就必须先坐下来思考如何组织这些组件。然后 select LayoutManager,例如 BorderLayout,它提供了到达您决定使用的 "structure" 的最简单方法。