问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求高手用java SWING实现下图结构

发布网友 发布时间:2022-04-26 21:33

我来回答

2个回答

热心网友 时间:2023-11-05 10:42

这是服务器端:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.net.Socket;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JScrollPane;

public class J_ChatClient extends JFrame
{
private ObjectInputStream m_input; // 输入流
private ObjectOutputStream m_output; // 输出流
private JTextField m_enter; // 输入区域
private JTextArea m_display; // 显示区域

public J_ChatClient( ) // 在图形界面中添加组件
{
super("聊天程序客户端");
Container c = getContentPane( );
m_enter = new JTextField( );
m_enter.setEnabled( false );
m_enter.addActionListener(new ActionListener( )
{
public void actionPerformed( ActionEvent event )
{ // 向服务器端发送数据
try
{
String s = event.getActionCommand( );
m_output.writeObject( s );
m_output.flush( );
mb_displayAppend( "客户端: " + s );
m_enter.setText( "" ); // 清除输入区域的原有内容
}
catch (Exception e)
{
System.err.println("发生异常:" + e);
e.printStackTrace( );
} // try-catch结构结束
} // 方法actionPerformed结束
} // 实现接口ActionListener的内部类结束
); // addActionListener方法调用结束
c.add( m_enter, BorderLayout.NORTH );
m_display = new JTextArea( );
c.add( new JScrollPane( m_display ), BorderLayout.CENTER );
} // J_ChatClient构造方法结束

public void mb_displayAppend( String s )
{
m_display.append( s + "\n" );
m_display.setCaretPosition( m_display.getText( ).length( ) );
m_enter.requestFocusInWindow( ); // 转移输入焦点到输入区域
} // 方法mb_displayAppend结束

public boolean mb_isEndSession( String m )
{
if (m.equalsIgnoreCase("q"))
return(true);
if (m.equalsIgnoreCase("quit"))
return(true);
if (m.equalsIgnoreCase("exit"))
return(true);
if (m.equalsIgnoreCase("end"))
return(true);
if (m.equalsIgnoreCase("结束"))
return(true);
return(false);
} // 方法mb_isEndSession结束

public void mb_run( String host, int port)
{
try
{
mb_displayAppend("尝试连接");
Socket s = new Socket(host, port);
String m; // 来自服务器端的消息
m_output = new ObjectOutputStream( s.getOutputStream( ) );
m_input = new ObjectInputStream( s.getInputStream( ) );
m_enter.setEnabled( true );
do
{
m = (String) m_input.readObject( );
mb_displayAppend("服务器端: " + m);
} while(!mb_isEndSession( m ));// do-while循环结束
m_output.writeObject("q"); // 通知服务端退出程序
m_output.flush( );
m_output.close( );
m_input.close( );
s.close( );
System.exit( 0 );
}
catch (Exception e)
{
System.err.println("发生异常:" + e);
e.printStackTrace( );
mb_displayAppend("发生异常");
} // try-catch结构结束
} // 方法mb_run结束

public static void main(String args[ ])
{
J_ChatClient app = new J_ChatClient( );
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(350, 150);
app.setVisible(true);
if ( args.length == 0 )
app.mb_run("localhost", 5000);
else app.mb_run(args[0], 5000);
} // 方法main结束
} // 类J_ChatClient结束
这是客户端:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JScrollPane;

public class J_ChatServer extends JFrame
{
private ObjectInputStream m_input; // 输入流
private ObjectOutputStream m_output; // 输出流
private JTextField m_enter; // 输入区域
private JTextArea m_display; // 显示区域
private int m_clientNumber = 0; // 连接的客户数

public J_ChatServer( ) // 在图形界面中添加组件
{
super("聊天程序服务器端");
Container c = getContentPane( );
m_enter = new JTextField( );
m_enter.setEnabled( false );
m_enter.addActionListener(new ActionListener( )
{
public void actionPerformed( ActionEvent event )
{ // 向客户端发送数据
try
{
String s = event.getActionCommand( );
m_output.writeObject( s );
m_output.flush( );
mb_displayAppend( "服务器端: " + s );
m_enter.setText( "" ); // 清除输入区域的原有内容
}
catch (Exception e)
{
System.err.println("发生异常:" + e);
e.printStackTrace( );
} // try-catch结构结束
} // 方法actionPerformed结束
} // 实现接口ActionListener的内部类结束
); // addActionListener方法调用结束
c.add( m_enter, BorderLayout.NORTH );
m_display = new JTextArea( );
c.add( new JScrollPane( m_display ), BorderLayout.CENTER );
} // J_ChatServer构造方法结束

public void mb_displayAppend( String s )
{
m_display.append( s + "\n" ); //将给定文本追加到文档结尾
//设置 TextComponent 的文本插入符的位置。注意,插入符可跟踪更改,所以如果组件的基础文本被更改,
//则此位置可能会移动。如果文档为 null,则不执行任何操作。位置必须在 0 和组件的文本长度之间,否则将抛出异常
m_display.setCaretPosition( m_display.getText( ).length( ) );
m_enter.requestFocusInWindow( ); // 转移输入焦点到输入区域
} // 方法mb_displayAppend结束

public boolean mb_isEndSession( String m )
{
if (m.equalsIgnoreCase("q"))
return(true);
if (m.equalsIgnoreCase("quit"))
return(true);
if (m.equalsIgnoreCase("exit"))
return(true);
if (m.equalsIgnoreCase("end"))
return(true);
if (m.equalsIgnoreCase("结束"))
return(true);
return(false);
} // 方法mb_isEndSession结束

public void mb_run( )
{
try
{
ServerSocket server = new ServerSocket(5000);
String m; // 来自客户端的消息
while (true)
{
m_clientNumber++;
mb_displayAppend("等待连接[" + m_clientNumber + "]" + " ");
Socket s = server.accept( );
mb_displayAppend("接收到客户端连接[" + m_clientNumber + "]" + " ");
m_output = new ObjectOutputStream( s.getOutputStream( ) );
m_input = new ObjectInputStream( s.getInputStream( ) );
m_output.writeObject("连接成功");
m_output.flush( );
m_enter.setEnabled( true );
do
{
m = (String) m_input.readObject( );
mb_displayAppend("客户端: " + m);
} while(!mb_isEndSession( m ));// do-while循环结束
m_output.writeObject("q"); // 通知客户端退出程序
m_output.flush( );
m_enter.setEnabled( false );
m_output.close( );
m_input.close( );
s.close( );
mb_displayAppend("连接[" + m_clientNumber + "]结束" + " ");
} // while循环结束
}
catch (Exception e)
{
System.err.println("发生异常:" + e);
e.printStackTrace( );
mb_displayAppend("连接[" + m_clientNumber +"]发生异常" + " ");
} // try-catch结构结束
} // 方法mb_run结束

public static void main(String args[ ])
{
J_ChatServer app = new J_ChatServer( );

app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
app.setSize(350, 150);
app.setVisible(true);
app.mb_run( );
} // 方法main结束
} // 类J_ChatServer结束
楼主看看就应该懂了,我注释的很详细的,这个是我以前学Socket编程的时候,写的一个例子
追问恩。。不知道你这是不是贴过来的,你这一段代码绝对不是回答我的提问的。大家注意鸟,他这段是一个简单的服务器和客户端的对话框,大家有需要的弄走了。这么多天没人回答,哎,伤心,不过我已经解决了。分就给你了。

热心网友 时间:2023-11-05 10:42

用JList追问求详细代码后追加40分

我想知道如何用java swing设计我想要的这样的一个界面?望抽空帮助...

然后我们可以继承BasicTabbedPaneUI 重写里面的部分绘制方法来修改外观 参考代码 import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.plaf.ComponentUI;import javax.swing.plaf.basic.BasicTabbedPaneUI;public class SwingDemo extends JFrame implements ActionListener {J...

java swing界面设计

import javax.swing.*;import java.awt.*;public class P005_GridLayout {JFrame jframe;public P005_GridLayout() {jframe = new JFrame("表格布局");jframe.setLayout(new GridLayout(3, 4));//表格布局,3行 4列for (int i = 0; i <= 12; i++) {jframe.add(new JButton(i+...

求大佬帮帮忙用java写这样一个界面。

使用Swing或者JavaFX都可以写出来;但是JavaFX是更现代化的界面框架 布局方案1: 绝对布局. 就是精确的控制每一个组件(按钮,文本框,标签等)的位置; 不推荐这种布局,因为这种布局不灵活. 修改起来比较麻烦. 并且不同的平台可能存在差异.布局方案2: 使用各种布局进行嵌套,以JavaFX的布局容器为例, 主题部分...

求一个java程序 基于Swing的图形用户界面设计

import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Enumeration;import java.util.Random;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.UIManager;import javax.swing.plaf.FontUIResource;public clas...

用java swing画出11*19的格子。每个格子的大小是34*38,如何实现?

import javax.swing.JPanel;/ 用java swing画出11*19的格子,每个格子的大小是34*38 author 米强 / public class TestMain extends JFrame { private JPanel pane = null;public TestMain() { super("画格子");paintChequer();getContentPane().add(pane);setDefaultCloseOperation(JFrame.EXIT_...

JAVA swing界面编程,怎么实现点击左边的树节点,然后在右边刷新界面,显 ...

JTree添加一个选择事件的响应器,然后根据事件获取到当前选择的树节点,. 然后读取对应的文字或者图片; 关键代码如下:jt.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { //写入你的逻辑代码 } } 我的阅读器效果如下图(使用的是swing + ...

javaswing界面设计?

javaswing怎样开发出漂亮的界面 使用Swing照样可以开发出漂亮的界面. 主要的解决方案如下: 1:合理的布局,搭建好界面的框架.熟悉常用的布局,并且布局还可以嵌套布局.?可以实现复杂而又美观的界面. 2:适当的图片,?按钮,背景等都可以使用图片,当然了为了节省系统资源,可以使用稍微压缩得比较小的图片. 3:搭配html,swing...

在用Java的Swing开发程序时,我使用了很多个JLabel来铺满整个界面以实现...

其实你不用添加jlabel,直接方jpanel就可以 你可以重写 jpanel里面的 paintComponent()方法 public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D gr = (Graphics2D) g; gr.drawImage(img, x, y, width, height); //x ,y 是坐标 //想显示在上一张图片...

java swing如何编写像eclipse界面模块可拖动

首先这种效果我没有做过,因为现在实在没有人用swing写GUI客户端了。让我现在给你写个完整的代码也么那么多时间》首先分隔成三个窗体,用三个jpanel放到jframe中,然后仔细的设置窗体和jpanel的宽高和位置就能了,至于拖动变成竖的,你只需要在底下console的窗口的jpanel加上MouseListener,具体的可靠下面...

怎样使用java swing画一个表格,把输出显示到表格上,而且每10秒自动刷新...

把table放到一个JFrame里显示 使用线程或者Timer定时更新数据 使用((DefaultTableModel) table.getModel()).fireTableDataChanged();让页面刷新 import java.awt.BorderLayout;import java.util.Timer;import java.util.TimerTask;import java.util.Vector;import javax.swing.JFrame;import javax.swing....

下图甲表示缩手反射相关结构 下图甲是缩手反射相关结构 用位移法作图示结构m图 女人下图结构 java的结构 java基本结构 java三大结构 java选择结构 java程序的结构有哪几种
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有人在宿舍安路由器吗 PF89式80毫米单兵火箭筒研制历史 我们的学校宿舍有电话插口。我们想装路由器几个人一起上网。要怎么弄... 昙花一现的解放军自研两截式火箭筒:70式62毫米反坦克火箭筒 近炸引信分类 安装SQL时,我进入了x86/setup文件夹后,执行setupsql.exe,提示却是:_百... 我爸左胸自发性气胸都引流八天了,怎么还没见好转,还有那么多泡泡,今 ... 73岁糖尿病患者 突然左脑出血 引流手术 和器官切除后17天了能 挣眼手 ... 索爱st18i2.3.3 之前用一键root过,现在好像把camera哪个自带的程序误删... st18i能用什么软件刷机 怎么用java实现图中的数据结构 java 如何实现树、图结构? 我国《公路桥规》规定了结构设计有哪三种状况 怎么用电脑注册 如何用电脑注册百度知道账号? 怎么用电脑注册 什么是研究生?研究生是研究什么的? 研究的研换部首组词急!妍 带“研”的成语有哪些? 研究的近义词是什么,近义词里必须有研或究字 有关圆月的唯美句子 研究的近义词是什么,近义词里必须有研或究字。 与“研”字有关的词有哪些? 研究的研能组什么词了 研究的研怎么写 研究的研是什么组词 研究的研怎么组词 研究的研是前鼻音还是后鼻音? 描写月亮的唯美诗句有哪些? “研究”的“研”字能组成哪些词? 用java画的图形怎么用数据结构来存储 Java绘图机制是什么样的 小米手机,无限重启中,怎么办. 小米10青春版怎么授权地理位置 科学养猪方法 在当代农村,怎样养猪才称得上是科学? 科学养猪的方法 科学养猪的好处有哪些?要从哪些方面着手? 开养猪场的人越来越多,应该怎么科学养猪? 怎样快速科学养猪 如何科学养猪呢? 家里少量养猪如何做到科学化? 怎么科学养猪 养猪技巧:怎样科学的养育肥猪 4米距离买多大幕布 我国《公桥规》规定了哪三种设计状况?请详细解释之 怎样科学养猪 幻塔4米有多远 投影仪建议距离是4米,如果距离只有2米会有影响吗? 海尔KFR-32GW/06NHA23A是全直流变频空调吗?