java中如何获取JLabel中的值,急急急!!!

lll517430947lll 2013-10-18 06:57:22
从键盘向JLabel中输入一个值,现在想获取这个值,求指导
...全文
1508 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
lll517430947lll 2013-10-22
  • 打赏
  • 举报
回复
我是想从键盘输入一个值,然后再获取这个值,不是要获得初始的值
teemai 2013-10-22
  • 打赏
  • 举报
回复
引用 17 楼 lll517430947lll 的回复:
我做的是TSP问题 如果全贴出来的话太多了 所以只贴一部分
好吧,你初始化的时候没有给jtf2设置text,下面又用到,所以出错。 给你改了下,程序可以跑。逻辑自己改一下。

import java.awt.*;

import javax.swing.*;

import java.io.*;
import java.math.*;
import java.util.*;

public class TSP extends JFrame {

	/**
	 * @param args
	 */
	// 定义面板及面板上的控件
	public ShowPanel jp1;
	public JPanel jp2;
	public JTextField jtf1, jtf2, jtf3, jtf4;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TSP tsp = new TSP();
	}

	public TSP() {
		// 初始化面板及控件
		jp2 = new JPanel();

		jtf1 = new JTextField(10);
		jtf2 = new JTextField(10);
		jtf2.setText("100");
		jtf3 = new JTextField(10);
		jtf4 = new JTextField(10);

		// 设置面板2的布局,采用只有一列的网格布局
		jp2.setLayout(new GridLayout(14, 1, 0, 10));
		jp2.add(jtf1);
		jp2.add(jtf2);
		jp2.add(jtf2);
		jp2.add(jtf4);

		jp1 = new ShowPanel(this);
		// 线程
		Thread t = new Thread(jp1);
		t.start();

		// 设置框架的布局
		this.setLayout(new BorderLayout());
		this.add(jp1, BorderLayout.CENTER);
		this.add(jp2, BorderLayout.EAST);

		this.setSize(800, 600);
		this.setTitle("用遗传算法解决旅行商问题");
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);
	}
}

class ShowPanel extends JPanel implements Runnable {
	int times = 1;
	TSP tsp;

	public ShowPanel(TSP tsp) {
		times = Integer.parseInt(tsp.jtf2.getText());
//		Individual individual = new Individual();
	}

	public void paint(Graphics g) {
		super.paint(g);

		g.setColor(Color.black);
		g.fillRect(0, 0, 660, 600);
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		while (times != 0) {
			try {
				Thread.sleep(100);
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
//			individual.print_result();
			times--;
			this.repaint();

		}
	}
}
lll517430947lll 2013-10-22
  • 打赏
  • 举报
回复
我做的是TSP问题 如果全贴出来的话太多了 所以只贴一部分
lll517430947lll 2013-10-22
  • 打赏
  • 举报
回复
请问哪里有错啊
teemai 2013-10-22
  • 打赏
  • 举报
回复

import java.awt.*;

import javax.swing.*;

import java.io.*;
import java.math.*;
import java.util.*;

public class TSP extends JFrame {

	/**
	 * @param args
	 */
	// 定义面板及面板上的控件
	public ShowPanel jp1;
	public JPanel jp2;
	public JTextField jtf1, jtf2, jtf3, jtf4;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TSP tsp = new TSP();
	}

	public TSP() {
		// 初始化面板及控件
		jp2 = new JPanel();

		jtf1 = new JTextField(10);
		jtf2 = new JTextField(10);
		jtf3 = new JTextField(10);
		jtf4 = new JTextField(10);

		// 设置面板2的布局,采用只有一列的网格布局
		jp2.setLayout(new GridLayout(14, 1, 0, 10));
		jp2.add(jtf1);
		jp2.add(jtf2);
		jp2.add(jtf2);
		jp2.add(jtf4);

		jp1 = new ShowPanel(this);
		// 线程
		Thread t = new Thread(jp1);
		t.start();

		// 设置框架的布局
		this.setLayout(new BorderLayout());
		this.add(jp1, BorderLayout.CENTER);
		this.add(jp2, BorderLayout.EAST);

		this.setSize(800, 600);
		this.setTitle("用遗传算法解决旅行商问题");
		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);
	}
}

class ShowPanel extends JPanel implements Runnable {
	int times;
	TSP tsp;

	public ShowPanel(TSP tsp) {
		times = Integer.parseInt(tsp.jtf2.getText());
		Individual individual = new Individual();
	}

	public void paint(Graphics g) {
		super.paint(g);

		g.setColor(Color.black);
		g.fillRect(0, 0, 660, 600);
	}

	@Override
	public void run() {
		// TODO Auto-generated method stub
		while (times != 0) {
			try {
				Thread.sleep(100);
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}
			individual.print_result();
			times--;
			this.repaint();

		}
	}
}
teemai 2013-10-22
  • 打赏
  • 举报
回复
Individual这个是什么类。发全一点,还有代码好多错
lll517430947lll 2013-10-22
  • 打赏
  • 举报
回复
引用 12 楼 huxiweng 的回复:
你把你的代码贴出来
package TSP; import java.awt.*; import javax.swing.*; import java.io.*; import java.math.*; import java.util.*; public class TSP extends JFrame { /** * @param args */ //定义面板及面板上的控件 public ShowPanel jp1; public JPanel jp2; public JTextField jtf1,jtf2,jtf3,jtf4; public static void main(String[] args) { // TODO Auto-generated method stub TSP tsp=new TSP(); } public TSP() { //初始化面板及控件 jp2=new JPanel(); jtf1=new JTextField(10); jtf2=new JTextField(10); jtf3=new JTextField(10); jtf4=new JTextField(10); //设置面板2的布局,采用只有一列的网格布局 jp2.setLayout(new GridLayout(14, 1,0,10)); jp2.add(jl1); jp2.add(jl2); jp2.add(jl3); jp2.add(jl4); jp1=new ShowPanel(this); //线程 Thread t=new Thread(jp1); t.start(); //设置框架的布局 this.setLayout(new BorderLayout()); this.add(jp1,BorderLayout.CENTER); this.add(jp2,BorderLayout.EAST); this.setSize(800, 600); this.setTitle("用遗传算法解决旅行商问题"); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.setVisible(true); this.setResizable(false); } } class ShowPanel extends JPanel implements Runnable { int times; TSP tsp; public ShowPanel(TSP tsp) { times=Integer.parseInt(tsp.jl2.getText()); individual=new Individual(); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.black); g.fillRect(0,0,660,600); } @Override public void run() { // TODO Auto-generated method stub while(times!=0) { try { Thread.sleep(100); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } individual.print_result(); times--; this.repaint(); } } } 这样写得话有错啊
teemai 2013-10-22
  • 打赏
  • 举报
回复
你把你的代码贴出来
失落夏天 2013-10-22
  • 打赏
  • 举报
回复
引用 10 楼 lll517430947lll 的回复:
[quote=引用 9 楼 AA5279AA 的回复:] [quote=引用 8 楼 lll517430947lll 的回复:] [quote=引用 6 楼 AA5279AA 的回复:] [quote=引用 2 楼 lll517430947lll 的回复:] 是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
和当初我刚学java的时候一个模式,不知道类与类之间怎么获取对象。。 首先,JTextArea.getText()获取值。 如果在另外的类中获取这个类中的对象值,那么就需要把这个类的对象传递到另外一个类当中。 或者也可以把这个类写成单例,另外一个类中获取这个单例,获取到了这个类对象了,那么继续获取这个值你就知道该怎么做了吧?[/quote] 6# 您好,请问能说详细一点吗 因为我是在主类中定义的,如果在其他类中定义一个主类对象会出错啊[/quote] 我说的是传递对象,不是重新定义一个对象。。。。 比如你主类 Class Main{ //主类中生成其他类对象 Other other=new Other(this); } Class Other{ Main main; public Other(Main main){ this.main=main; } 这样通过对象引用的传递,不是新生成。。。 或者直接主类构建单例模式。。。这样无论在哪里取都是一个对象 }[/quote] 我现在是在JPanel的子类中要用到主类中的JTextArea,如果按大神的用法的话,会出现一个问题,就是在JPanel还没生成的时候就获取文本框的值 这显然不行啊[/quote] 如果按你的要求,那么就在实例化JPanel子类的时候传入主类对象或者传入主类中的JTextArea就可以了。。。 你只是把对象传进去了,传进去对象之后为了以后调用获取值,而不是立马就用!!!
lll517430947lll 2013-10-22
  • 打赏
  • 举报
回复
引用 9 楼 AA5279AA 的回复:
[quote=引用 8 楼 lll517430947lll 的回复:] [quote=引用 6 楼 AA5279AA 的回复:] [quote=引用 2 楼 lll517430947lll 的回复:] 是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
和当初我刚学java的时候一个模式,不知道类与类之间怎么获取对象。。 首先,JTextArea.getText()获取值。 如果在另外的类中获取这个类中的对象值,那么就需要把这个类的对象传递到另外一个类当中。 或者也可以把这个类写成单例,另外一个类中获取这个单例,获取到了这个类对象了,那么继续获取这个值你就知道该怎么做了吧?[/quote] 6# 您好,请问能说详细一点吗 因为我是在主类中定义的,如果在其他类中定义一个主类对象会出错啊[/quote] 我说的是传递对象,不是重新定义一个对象。。。。 比如你主类 Class Main{ //主类中生成其他类对象 Other other=new Other(this); } Class Other{ Main main; public Other(Main main){ this.main=main; } 这样通过对象引用的传递,不是新生成。。。 或者直接主类构建单例模式。。。这样无论在哪里取都是一个对象 }[/quote] 我现在是在JPanel的子类中要用到主类中的JTextArea,如果按大神的用法的话,会出现一个问题,就是在JPanel还没生成的时候就获取文本框的值 这显然不行啊
失落夏天 2013-10-19
  • 打赏
  • 举报
回复
引用 8 楼 lll517430947lll 的回复:
[quote=引用 6 楼 AA5279AA 的回复:] [quote=引用 2 楼 lll517430947lll 的回复:] 是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
和当初我刚学java的时候一个模式,不知道类与类之间怎么获取对象。。 首先,JTextArea.getText()获取值。 如果在另外的类中获取这个类中的对象值,那么就需要把这个类的对象传递到另外一个类当中。 或者也可以把这个类写成单例,另外一个类中获取这个单例,获取到了这个类对象了,那么继续获取这个值你就知道该怎么做了吧?[/quote] 6# 您好,请问能说详细一点吗 因为我是在主类中定义的,如果在其他类中定义一个主类对象会出错啊[/quote] 我说的是传递对象,不是重新定义一个对象。。。。 比如你主类 Class Main{ //主类中生成其他类对象 Other other=new Other(this); } Class Other{ Main main; public Other(Main main){ this.main=main; } 这样通过对象引用的传递,不是新生成。。。 或者直接主类构建单例模式。。。这样无论在哪里取都是一个对象 }
lll517430947lll 2013-10-19
  • 打赏
  • 举报
回复
引用 6 楼 AA5279AA 的回复:
[quote=引用 2 楼 lll517430947lll 的回复:] 是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
和当初我刚学java的时候一个模式,不知道类与类之间怎么获取对象。。 首先,JTextArea.getText()获取值。 如果在另外的类中获取这个类中的对象值,那么就需要把这个类的对象传递到另外一个类当中。 或者也可以把这个类写成单例,另外一个类中获取这个单例,获取到了这个类对象了,那么继续获取这个值你就知道该怎么做了吧?[/quote] 6# 您好,请问能说详细一点吗 因为我是在主类中定义的,如果在其他类中定义一个主类对象会出错啊
lll517430947lll 2013-10-19
  • 打赏
  • 举报
回复
6# 您好,请问能说详细一点吗 因为我是在主类中定义的,如果在其他类中定义一个主类对象会出错啊
失落夏天 2013-10-19
  • 打赏
  • 举报
回复
引用 2 楼 lll517430947lll 的回复:
是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
和当初我刚学java的时候一个模式,不知道类与类之间怎么获取对象。。 首先,JTextArea.getText()获取值。 如果在另外的类中获取这个类中的对象值,那么就需要把这个类的对象传递到另外一个类当中。 或者也可以把这个类写成单例,另外一个类中获取这个单例,获取到了这个类对象了,那么继续获取这个值你就知道该怎么做了吧?
huntor 2013-10-19
  • 打赏
  • 举报
回复
引用 4 楼 lll517430947lll 的回复:
sorry,是JTextArea,真的是脑袋被驴踢了
JTextArea 有getText方法获取里面的文本。
lll517430947lll 2013-10-18
  • 打赏
  • 举报
回复
sorry,是JTextArea,真的是脑袋被驴踢了
huntor 2013-10-18
  • 打赏
  • 举报
回复
JLabel不是接受输入的组件
lll517430947lll 2013-10-18
  • 打赏
  • 举报
回复
是这个函数没错 但我将它定义在与主函数一起的类中,现在要在另外的类中得到这个值,怎么办呢
失落夏天 2013-10-18
  • 打赏
  • 举报
回复
我倒是没用过JLabel 不过 JLabel j=new JLabel(); j.getText();//Returns the text string that the label displays. 这API解释意思就是返回表格中值的意思吧。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧