小编mop*_*opr的帖子

如何从按钮关闭jdialog?

我有一个Jframe(美因茨),

它有一个按钮(showDialog),

当用户点击按钮时

jdialog(Dialogz)将展示,

那个jdialog有一个按钮

  • 如何从该按钮关闭jdialog(在jdialog内)?
  • 我可以在创建它的实例后更改对话模式吗?

我需要阻止该jdialog的所有者

继续我试试......

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;


    public class Mainz extends JFrame implements ActionListener{
        JButton showDialog = new JButton("show dialog");

        public Mainz() {
            setLayout(new FlowLayout());
            showDialog.addActionListener(this);
            add(showDialog);
            setVisible(true);   
        }
        @Override
        public void actionPerformed(ActionEvent e) {
            new Dialogz(this, true);
        }

        public static void main(String[]args){
            new Mainz();
    }
    }
    class Dialogz extends JDialog{
        JButton close = new JButton("close");

        public Dialogz(JFrame owner,boolean modal) {
            super(owner, modal);
            System.out.println(this.getModalityType());
            add(close);
            setLocationRelativeTo(owner); …
Run Code Online (Sandbox Code Playgroud)

java swing modal-dialog jdialog

3
推荐指数
1
解决办法
2万
查看次数

如何使光标可以进入jtextfield,但是给它一个文本的唯一方法是点击一个按钮?

我有jTextfield和jButton ..

如何

  • 用户可以点击jTextfield(鼠标可以在jtextfield上输入/退出),但如果用户输入内容,它将不会执行任何操作(除了将删除整个文本的退格键)
  • 当用户点击按钮时,它会

jTextfield.setText( "东西");

所以给jtextfield文本的唯一方法是单击按钮

  • 当那里有文本(当光标在jtextfield中时)然后用户键入退格时,它将删除jtextfield上的整个文本.

这该怎么做?

原谅我的英语..非常感谢任何帮助..

java swing jtextfield

3
推荐指数
1
解决办法
1409
查看次数

如何每秒移动jlabel?

我尝试每秒将它移动到右边(x ++)

我尝试用线程移动它..

  1. 怎么做?(并且可以看到它每秒移动)
  2. 有没有使用线程的另一种方法吗?
  3. 我应该使用什么版面管理器?

继续我试试..

public class help {
    JFrame frame = new JFrame();
    JLabel label = new JLabel("target");

    public help() {
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setSize(800,600);
        frame.setLayout(new GridLayout());
        frame.add(label);
        label.setPreferredSize(new Dimension(100,100));
        label.setLocation(400, 300);

        frame.getContentPane().validate();
        frame.repaint();
        frame.setVisible(true);

        mysterious();
    }

    void mysterious(){
     ////////////////////////////////
     // part of edit responding David kroukamp  
    Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
         try{

            for (int z=0; z<10; z++){
            label.setLocation((label.getLocationOnScreen().x+10), label.getLocationOnScreen().y);
            Thread.sleep(1000);  
            } 
        }catch(Exception ae){

    }
    }
});
t.start();
    //////////////////////////////



    }
    public static …
Run Code Online (Sandbox Code Playgroud)

java swing multithreading jlabel

1
推荐指数
1
解决办法
1万
查看次数

如何使用GradientPaint每秒绘制jpanel?

我有两个类..类面板扩展JPanel,

和另一个每秒控制那个jpanel的油漆的类..(我用swing.Timer)

我的代码失败了

继续我到目前为止尝试..

类面板扩展了JPanel:

@Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Control control = new Control(this,g);
        repaint();
    }
Run Code Online (Sandbox Code Playgroud)

班级控制:

public class Control implements ActionListener{

    private int XX=0;
    private int YY=0;

    private Graphics2D g2;
    private JPanel panel;

    Timer tim = new Timer(1000, this);


    public Control(JPanel el,Graphics g) {


        this.g2=(Graphics2D)g.create();
        this.panel=el;
        tim.start();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        XX++;
        YY++;

    /////////////////////
    //my priority 
        GradientPaint gp = new GradientPaint(XX, YY, Color.BLUE, panel.getWidth(), panel.getHeight(), Color.WHITE);
    //////////////////////

        g2.setPaint(gp);
        g2.fillRect(0, 0, panel.getWidth(), panel.getHeight());
        panel.repaint(); …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel paintcomponent

-3
推荐指数
2
解决办法
974
查看次数