一个简单的界面小程序,求解(新手)

try-catch-finally 2011-06-07 10:56:03
//ButtonClick.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonClick
{
public static void main(String[] args)
{
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class ButtonFrame extends JFrame
{
public ButtonFrame()
{
setTitle("ButtonClick");
setSize(WIDTH, HEIGHT);

// 将panel加入到frame
ButtonPanel panel = new ButtonPanel();
Container contentPane = getContentPane();
contentPane.add(panel);
}

public static final int WIDTH = 300;
public static final int HEIGHT = 200;
}

class ButtonPanel extends JPanel
{
public ButtonPanel()
{
//创建按钮
JButton Button1 = new JButton("按钮一");
JButton Button2 = new JButton("按钮二");

//将按钮加入panel
add(Button1);
add(Button2);

//创建监听器
ButtonAction ButtonAction1 = new ButtonAction("按钮一");
ButtonAction ButtonAction2 = new ButtonAction("按钮二");

//注册监听器
Button1.addActionListener(ButtonAction1);
Button2.addActionListener(ButtonAction2);
}

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

//显示用户的点击操作
g.drawString(" " + ButtonText, 90, 120);
System.out.println();
}

private class ButtonAction
implements ActionListener
{
public ButtonAction(String text)
{
clicktext =text;
}

public void actionPerformed(ActionEvent event)
{
ButtonText += ("您点击的是:"+clicktext );
repaint();
}

private String clicktext="";

}

public String ButtonText = "";

}

哪位兄弟能帮我改一下程序,让每次点一下结果会换行,而不是一直往后面添加
...全文
153 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不会、、、、、、嘿嘿
try-catch-finally 2011-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 possibleonline 的回复:]
drawString看来不行,还得用TextArea

Java code

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonClick {
public static void main(String[] args) {
Butt……
[/Quote]
这个可以用啊,谢谢
lh_fengyuzhe 2011-06-07
  • 打赏
  • 举报
回复

public void paintComponent(Graphics g)
{
super.paintComponent(g);
//从Vector中取出所有字符串,分别drawstring,请自行根据字体大小算出每行字的height坐标,暂时用20代替
for (int i = 0; i < ButtonText.size(); i++) {
//显示用户的点击操作
g.drawString(" " + ButtonText.get(i), 90, 120 + 20*i);
}
System.out.println();
}

//每点击一次,将String添加到Vector中去
public void actionPerformed(ActionEvent event)
{
ButtonText.add("您点击的是:"+clicktext);
repaint();
}
public Vector<String> ButtonText = new Vector<String>();

possibleonline 2011-06-07
  • 打赏
  • 举报
回复
drawString看来不行,还得用TextArea

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ButtonClick {
public static void main(String[] args) {
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class ButtonFrame extends JFrame {
public ButtonFrame() {
setTitle("ButtonClick");
setSize(WIDTH, HEIGHT);

// 将panel加入到frame
ButtonPanel panel = new ButtonPanel();
Container contentPane = getContentPane();
contentPane.add(panel);
}

public static final int WIDTH = 300;
public static final int HEIGHT = 200;
}

class ButtonPanel extends JPanel {
JTextArea area=null;
public ButtonPanel() {
// 创建按钮
JButton Button1 = new JButton("按钮一");
JButton Button2 = new JButton("按钮二");

// 将按钮加入panel
add(Button1);
add(Button2);

// 创建监听器
ButtonAction ButtonAction1 = new ButtonAction("按钮一");
ButtonAction ButtonAction2 = new ButtonAction("按钮二");

// 注册监听器
Button1.addActionListener(ButtonAction1);
Button2.addActionListener(ButtonAction2);

area=new JTextArea(20,40);
area.setEditable(false);
JScrollPane pane=new JScrollPane(area);
add(pane);
// area.setText("aaaaaaaaaaa\naaaaaaaaaaaa");
}

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

// 显示用户的点击操作
// g.drawString(" " + ButtonText, 90, 120);
// g.drawChars(ButtonText.toCharArray(), 0, ButtonText.toCharArray().length, 90, 120);
// g.drawString("aaaaa\r\naaaaaaaa", 90, 122);
area.setText(ButtonText);
System.out.println();
}

private class ButtonAction implements ActionListener {
public ButtonAction(String text) {
clicktext = text;
}

public void actionPerformed(ActionEvent event) {
ButtonText += ("您点击的是:" + clicktext+"\n");
repaint();
}

private String clicktext = "";

}

public String ButtonText = "";

}
softjet 2011-06-07
  • 打赏
  • 举报
回复
那就用这种方式
http://club.pchome.net/topic_5_60_125240_1__.html
try-catch-finally 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 softjet 的回复:]
ButtonText += ("您点击的是:"+clicktext+"\n\r" );
[/Quote]

我试了一下,好像也不行。。。。
softjet 2011-06-07
  • 打赏
  • 举报
回复
ButtonText += ("您点击的是:"+clicktext+"\n\r" );
try-catch-finally 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chenchenyangll 的回复:]
ButtonText += ("您点击的是:"+clicktext );

这个改为

ButtonText += ("您点击的是:"+clicktext+"\n" );
行不行? 我没试过 = =
[/Quote]

这个不行。。。
chenchenyangll 2011-06-07
  • 打赏
  • 举报
回复
ButtonText += ("您点击的是:"+clicktext );

这个改为

ButtonText += ("您点击的是:"+clicktext+"\n" );
行不行? 我没试过 = =

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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