我有一个JFrame,下面有很多JPanel,各个panel都有几个JTextField,JTextArea,我想让所有的JTextField和JTextArea都不可编辑,怎么办?法一、最原始的方法就是对每个JTextField和JTextArea使用setEditable(false);法二、for(int i=1;i<count;i++){
if(jPanel1.getComponent(i).getClass().toString().equals("class javax.swing.JTextField")){
((JTextField)jPanel1.getComponent(i)).setEditable(true);
}
}
上面这个很笨的方法也只能实现对一个JPanel下面的所有JTextField的修改
我现在问题时一个JFrame下面有很多JPanel55555,神阿,救救我!
if(jPanel1.getComponent(i).getClass().toString().equals("class javax.swing.JTextField")){
((JTextField)jPanel1.getComponent(i)).setEditable(true);
}
}
上面这个很笨的方法也只能实现对一个JPanel下面的所有JTextField的修改
我现在问题时一个JFrame下面有很多JPanel55555,神阿,救救我!
解决方案 »
- 现在的网页游戏都是用哪些东西做出来的?
- 一些小问题
- 新生问题:jar打包时的控制台不在了
- 如何在文件中查找一个给定的字符串
- firebox下怎么引用iframe
- 为什么我用了new String(client.getManaddress().getBytes("gb2312"),"ISO8859_1");显示出来的还是乱码??
- 求制作web树型结构的方法..有提供源代码的高分相送
- C++和java联合开发屏幕截图程序,存在Raster和ColorModel不兼容问题
- 请问这段程序中start1()是做什么用的???
- Java应用程序,汉字显示成方格......
- 请教高手个问题:在system类中怎么设置连接数据库的属性?
- 为什么我在import javax.servlet.*;的时候会出现错误
if (c instanceof Container) {
Container p = (Container) c;
int n = p.getComponentCount();
for (int i = 0; i < n; i++) {
setEditable(p.getComponent(i), b);
}
}
else if (c instanceof JTextField || c instanceof JTextArea) {
((JTextComponent)c).setEditable(b);
}
}
setEditable(frame, false);
import javax.swing.*;
import java.awt.*;
import javax.swing.text.*;
public class setEditableTest extends JFrame{
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel3 = new JPanel();
JTextField jTextField1 = new JTextField();
JTextField jTextField2 = new JTextField();
JTextField jTextField3 = new JTextField();
JTextField jTextField4 = new JTextField();
public setEditableTest() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
setEditableTest setEditableTest1 = new setEditableTest();
setEditable(setEditableTest1,false);
setEditableTest1.setSize(400,300);
setEditableTest1.setVisible(true);
}
private void jbInit() throws Exception {
jPanel1.setBackground(Color.white);
jPanel1.setLayout(borderLayout1);
jPanel2.setBackground(Color.pink);
jPanel3.setBackground(Color.white);
jPanel3.setLayout(null);
jTextField1.setText("jTextField1");
jTextField1.setBounds(new Rectangle(41, 63, 145, 22));
jTextField2.setText("jTextField2");
jTextField2.setBounds(new Rectangle(208, 63, 145, 22));
jTextField3.setText("jTextField3");
jTextField4.setText("jTextField4");
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jPanel2, BorderLayout.SOUTH);
jPanel2.add(jTextField3, null);
jPanel2.add(jTextField4, null);
jPanel1.add(jPanel3, BorderLayout.CENTER);
jPanel3.add(jTextField1, null);
jPanel3.add(jTextField2, null);
}
public static void setEditable(Component c, boolean b) {
if (c instanceof Container) {
Container p = (Container) c;
int n = p.getComponentCount();
for (int i = 0; i < n; i++) {
setEditable(p.getComponent(i), b);
}
}
else if (c instanceof JTextField || c instanceof JTextArea) {
((JTextComponent)c).setEditable(b);
}
}
}
public void setTextEditable(JPanel pp,boolean b){
JPanel p = pp;
for (int i = 0; i < p.getComponentCount(); i++) {
if (p.getComponent(i) instanceof JPanel) {
setTextEditable( (JPanel) p.getComponent(i), b);
}
else if (p.getComponent(i) instanceof JTextField) {
( (JTextField) p.getComponent(i)).setEditable(false);
}
}
}然后setTextEditable(jPanel1,false);