我需要让客户端能够建立许多连接.我使用Netty 4.0.不幸的是,所有现有示例都没有显示如何创建大量连接.
public class TelnetClient {
private Bootstrap b;
public TelnetClient() {
b = new Bootstrap();
}
public void connect(String host, int port) throws Exception {
try {
b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer());
Channel ch = b.connect().sync().channel();
ChannelFuture lastWriteFuture = null;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
for (;;) {
String line = in.readLine();
if (line == null) break;
lastWriteFuture = ch.write(line + "\r\n");
if (line.toLowerCase().equals("bye")) {
ch.closeFuture().sync();
break;
}
}
if (lastWriteFuture != null) lastWriteFuture.sync();
} finally {
b.shutdown();
} …Run Code Online (Sandbox Code Playgroud) JTextField tf = new JTextField();
tf.setBorder(new LineBorder(Color.red, 2));
Border border = tf.getBorder();
Run Code Online (Sandbox Code Playgroud)
如何获得边框颜色和大小?
http://weblogs.java.net/blog/aim/archive/2007/07/embedding_swing.html
http://docs.oracle.com/javase/1.5.0/docs/api/index.html?javax/swing /text/html/ObjectView.html
我将 html 代码添加到 JEditorPane:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<table width="90%" height="90%" align="center">
<tr align="center">
<td align="center">
<object classid="javax.swing.JButton" label="just do it">
</object>
</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我怎样才能控制这个按钮呢?(更改大小、颜色、添加监听器等)
我解决了这个问题,一个工作示例:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.ViewFactory;
import javax.swing.text.AttributeSet;
import javax.swing.text.Element;
import javax.swing.text.html.ObjectView;
import javax.swing.text.AbstractDocument;
import javax.swing.text.View;
import javax.swing.text.StyleConstants;
import javax.swing.text.*;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLEditorKit;
import java.net.URL;
public class EditorPaneTest extends JFrame
{
public EditorPaneTest()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationByPlatform(true);
JEditorPane editPane = new …Run Code Online (Sandbox Code Playgroud) JPopupMenu http://s010.radikal.ru/i313/1209/25/2213e2145879.gif
我需要删除的背景和Border在JPopupMenu.JPopupMenu应该是完全透明的.覆盖paintComponent不会给出积极的结果.我也尝试在BasicMenuItemUI/ PopupMenuUI和MenuItemUI/中找到解决方案,BasicPopupMenuUI但发现渲染背景和边框不在其中.
public class CustomMenuItemUI extends BasicMenuItemUI {
protected MouseInputListener mouseInputListener;
protected MenuDragMouseListener menuDragMouseListener;
public static ComponentUI createUI(JComponent c) {
return new CustomMenuItemUI();
}
private static float alpha = 0.0f;
private static float selectionAlpha = 0.0f;
public static float getAlpha() {
return alpha;
}
public static void setAlpha(float _alpha) {
alpha = _alpha;
}
@Override
public void installUI(JComponent c) {
super.installUI(c);
menuItem.setOpaque(false);
} …Run Code Online (Sandbox Code Playgroud) javax.swing.text.html.ImageView中; 第111和258-267行
http://javasourcecode.org/html/open-source/jdk/jdk-6u23/javax/swing/text/html/ImageView.java.html
public class ImageView extends View {
....
private float vAlign;
....
}
Run Code Online (Sandbox Code Playgroud)
我的节目:
.....
ImageView layeredPane = (ImageView) view;
Field privateStringField = layeredPane.getClass().getDeclaredField("vAlign");
privateStringField.setAccessible(true);
layeredPane.vAlign = 2.0;
.....
Run Code Online (Sandbox Code Playgroud)
我明白了:
Test.java:80:错误:vAlign在ImageView中具有私有访问权限layeredPane.vAlign = 2.0;
我如何解决它?我需要设置一个2.0的值
Character c = null;
if (c != 'P') c = 'G';
Run Code Online (Sandbox Code Playgroud)
这是一个简单的代码,它会让我对结果感到伤心.而不是条件,我得到一个错误NullPointerException.虽然无效!='P'并且必须满足条件.我很难解决额外的验证问题c!在条件"if"中为null.它应该是吗?有没有办法进行比较而不是错误?事实证明,所有代码都充满了这些不必要的检查.
java ×5
swing ×3
border ×2
background ×1
client ×1
colors ×1
connection ×1
imageview ×1
jbutton ×1
jeditorpane ×1
jpopupmenu ×1
netty ×1
object ×1
size ×1