当前位置: 技术问答>java相关
很简单,100分求助JCheckBox的问题
来源: 互联网 发布时间:2015-10-07
本文导语: 问题如下: 有个JPanel,设置个border,我想在border上面放个JCheckBox,以控制JPanel内控件的使能,可是问题出现了,即JCheckBox老是遮不住border的横线,只有等到JCheckBox获得焦点时才能遮住,可能是我设置的setOpaque()不对,帮帮...
问题如下:
有个JPanel,设置个border,我想在border上面放个JCheckBox,以控制JPanel内控件的使能,可是问题出现了,即JCheckBox老是遮不住border的横线,只有等到JCheckBox获得焦点时才能遮住,可能是我设置的setOpaque()不对,帮帮忙,一会结贴。
|--口选择框-----------------------------------|
| |
| |
| |
| |
| |
| |
----------------------------------------------
要使“口选择框“始终遮住下面的横线,用JDK,最好给出代码。
如果下面的问题也能给出代码,非常感谢:
有个字符串很长,JLabel一行显示不完,如何让JLabel自动换行(JLabel高度可以很大)
有个JPanel,设置个border,我想在border上面放个JCheckBox,以控制JPanel内控件的使能,可是问题出现了,即JCheckBox老是遮不住border的横线,只有等到JCheckBox获得焦点时才能遮住,可能是我设置的setOpaque()不对,帮帮忙,一会结贴。
|--口选择框-----------------------------------|
| |
| |
| |
| |
| |
| |
----------------------------------------------
要使“口选择框“始终遮住下面的横线,用JDK,最好给出代码。
如果下面的问题也能给出代码,非常感谢:
有个字符串很长,JLabel一行显示不完,如何让JLabel自动换行(JLabel高度可以很大)
|
首先border不是component,只是负责在组件上绘制border,
panel会调用border的paint方法,所以挡住了JCheckBox
你可以用一个大的panel代替一下
JPanel outterPanel = new JPanel (new BorderLayout());
outterPanel .add(checkBox,BorderLayout.NORTH);
outterPanel .add(panel,BorderLayout.CENTER);
panel会调用border的paint方法,所以挡住了JCheckBox
你可以用一个大的panel代替一下
JPanel outterPanel = new JPanel (new BorderLayout());
outterPanel .add(checkBox,BorderLayout.NORTH);
outterPanel .add(panel,BorderLayout.CENTER);
|
我不是很确定你什么意思,不知道这个行不行
public class Frame1 extends JFrame {
private JPanel jPanel1 = new JPanel();
private Border border1;
private JComboBox jComboBox1 = new JComboBox();
public Frame1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
frame1.show();
}
private void jbInit() throws Exception {
border1 = BorderFactory.createEtchedBorder(new Color(187, 218, 252),new Color(91, 107, 123));
this.setSize(new Dimension(400,300));
this.getContentPane().setLayout(null);
jPanel1.setBorder(border1);
jPanel1.setBounds(new Rectangle(43, 49, 296, 187));
jPanel1.setLayout(null);
jComboBox1.setBounds(new Rectangle(1, 162, 295, 25));
this.getContentPane().add(jPanel1, null);
jPanel1.add(jComboBox1, null);
}
}
public class Frame1 extends JFrame {
private JPanel jPanel1 = new JPanel();
private Border border1;
private JComboBox jComboBox1 = new JComboBox();
public Frame1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Frame1 frame1 = new Frame1();
frame1.show();
}
private void jbInit() throws Exception {
border1 = BorderFactory.createEtchedBorder(new Color(187, 218, 252),new Color(91, 107, 123));
this.setSize(new Dimension(400,300));
this.getContentPane().setLayout(null);
jPanel1.setBorder(border1);
jPanel1.setBounds(new Rectangle(43, 49, 296, 187));
jPanel1.setLayout(null);
jComboBox1.setBounds(new Rectangle(1, 162, 295, 25));
this.getContentPane().add(jPanel1, null);
jPanel1.add(jComboBox1, null);
}
}
|
对于第二问,你可以用JTextArea代替JLabel,然后把JLabel的属性(背景色、字体)等设置给JTextArea
|
jlabel.setText("sdfsdfdf
ouojljl");
ouojljl");