去掉光标,是吧?
1:设为只读;
2:设光标颜色为背景色;
具体参考代码:import javax.swing.*;
import javax.swing.border.EtchedBorder;
import java.awt.*;
import java.awt.event.*;interface MyInitScheme {
void initVarient();
void initFace();
}
class MyMenu extends JMenu implements MyInitScheme {
public MyMenu(String text) {
super(text);
initVarient();
initFace();
}
public void initFace() {
setBackground(SystemColor.desktop);
setFont(new Font("Serif", 0, 16));
setForeground(SystemColor.info);
setBorder(BorderFactory.createEtchedBorder());
}
public void initVarient(){};
}
class MyMenuItem extends JMenuItem implements MyInitScheme {
public MyMenuItem(String text) {
super(text);
initVarient();
initFace();
}
public void initFace() {
setBackground(SystemColor.desktop);
setFont(new Font("Serif", 0, 16));
setForeground(SystemColor.info);
setBorder(BorderFactory.createEtchedBorder());
}
public void initVarient(){};
}
class MyButton extends JButton implements MyInitScheme {
public MyButton(String text) {
super(text);
initVarient();
initFace();
}
public void initFace() {
setBackground(SystemColor.desktop);
setFont(new Font("Serif", 0, 16));
setForeground(SystemColor.info);
setBorder(BorderFactory.createEtchedBorder());
}
public void initVarient(){};
}class MyFrame extends JFrame implements MyInitScheme {
private JMenuBar mnuBar = new JMenuBar();
private JMenu mnuFile = new MyMenu("File");
private JMenuItem mnuFileExit = new MyMenuItem("Exit");
private JMenu mnuHelp = new MyMenu("Help");
private JMenuItem mnuHelpContact = new MyMenuItem("Contact Me");
private JButton btnDefault = new MyButton("Default");
private JButton btnOther = new MyButton("Another");
private JTextArea txt=new JTextArea(30,20);
private JScrollPane scrollPane=new JScrollPane(txt); private KeyAdapter key=new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_ENTER) {
btnDefault.requestFocus();
}
}
}; public void initVarient(){};
public void initFace() {
this.setSize(new Dimension(320, 240));
this.setResizable(false);
this.getContentPane().setLayout(null);
this.getContentPane().setBackground(SystemColor.activeCaption);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mnuBar.setBackground(SystemColor.desktop);
mnuBar.setBorder(BorderFactory.createRaisedBevelBorder()); mnuFile.setMnemonic('F');
mnuFileExit.setMnemonic('x');
mnuFileExit.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
} ); mnuHelp.setMnemonic('H');
mnuHelpContact.setMnemonic('M');
mnuHelpContact.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e) {
try {
Process p=Runtime.getRuntime().exec("C:/Program Files/"
+"Internet Explorer/IExplore.EXE"
+" mailto:[email protected]");
} catch (Exception ex) {
System.out.println(ex);
}
}
} ); btnDefault.setBounds(new Rectangle(220, 50, 75, 30));
btnDefault.setMnemonic('D'); btnOther.setBounds(new Rectangle(220, 100, 75, 30));
btnOther.setMnemonic('A'); btnOther.addKeyListener(key);
addKeyListener(key); mnuFile.add(mnuFileExit);
mnuHelp.add(mnuHelpContact);
mnuBar.add(mnuFile);
mnuBar.add(mnuHelp);// txt.setEditable(false);
txt.setCaretColor(getBackground());//或者使用具体的颜色值 scrollPane.setBounds(new Rectangle(10, 10, 200, 170)); this.setJMenuBar(mnuBar);
this.getRootPane().setDefaultButton(btnDefault);
this.getContentPane().add(btnDefault, null);
this.getContentPane().add(btnOther, null);
getContentPane().add(scrollPane);
} public MyFrame(String title) {
super(title);
initVarient();
initFace();
show();
btnOther.requestFocus();
}
}
public class MyButtonApp extends JFrame {
public static void main(String[] args) {
JFrame frame=new MyFrame("Test MyButton");
// frame.setExtendedState(Frame.ICONIFIED);
}
}

解决方案 »

  1.   

    jTextArea1.setCaret(new DefaultCaret() {
                public boolean isVisible() {
                    return false;
                }
            });
      

  2.   

    to: Iforgot(清风雨)  
    还是没有解决光标的问题,光标还在阿。只是颜色变浅了点。to: hyhong_h(黄黄) 
    我试了,好像不行,光标依然存在。我想去掉的是awt组件中的TextArea控件的光标,而不是jTextArea中的,
    况且TextArea中没有setCaret方法,我正在努力的试试去掉光标,但是一直没有眉目。希望大家能帮忙!!
      

  3.   

    设置成只读,还是有光标存在,只有设置成失去焦点,但是这样就不能输入内容了,AWT控件的功能实在是弱极,我在试试。