我需要以编程方式在JSF 2中创建复合组件.经过几天的搜索和实验,我找到了这种方法(在java.net上受到Lexi的启发):
/**
* Method will attach composite component to provided component
* @param viewPanel parent component of newly created composite component
*/
public void setComponentJ(UIComponent viewPanel) {
FacesContext context = FacesContext.getCurrentInstance();
viewPanel.getChildren().clear();
// load composite component from file
Resource componentResource = context.getApplication().getResourceHandler().createResource("whatever.xhtml", "components/form");
UIComponent composite = context.getApplication().createComponent(context, componentResource);
// push component to el
composite.pushComponentToEL(context, composite);
boolean compcompPushed = false;
CompositeComponentStackManager ccStackManager = CompositeComponentStackManager.getManager(context);
compcompPushed = ccStackManager.push(composite, CompositeComponentStackManager.StackType.TreeCreation);
// Populate the component with value expressions
Application application = context.getApplication();
composite.setValueExpression("value", …Run Code Online (Sandbox Code Playgroud) 是否可以使用ImageButton来触摸和突出显示状态,而不需要在Android上再增加2个图像资源(另外6个,考虑到h/m/ldpi)?我基本上都在寻找类似于iOS的行为,其中操作系统可以在按钮的触摸状态下放置半alpha覆盖.
我已经尝试setColorFilter(0xFF000000, Mode.MULTIPLY)在onTouch监听器中使用,结果与我之后的结果非常接近 - 但我不确定状态处理的最佳方式来实现这一点:
即
有更好的方法......或者有人可以帮助填补空白吗?
我不想使用单独的图像有几个原因 - 它是一个iPhone端口,我还没有适当的资产,并且需要更多的设计师时间考虑我有低/中/高创意到考虑.
谢谢!
在这里作为答案给出的许多Swing片段中,有一个SwingUtilities#invokeLater来自该main方法的调用:
public class MyOneClassUiApp {
private constructUi() {
// Some Ui related Code
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MyOneClassUiApp().constructUi();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
但根据Threads and Swing的文章,从主线程构造UI是安全的:
一些方法是线程安全的:在Swing API文档中,线程安全方法用以下文本标记:
虽然大多数Swing方法都不是,但这种方法是线程安全的.
应用程序的GUI通常可以构造并显示在主线程中:只要没有实现组件(Swing或其他),以下典型代码是安全的:
public class MyApplication {
public static void main(String[] args) {
JFrame f = new JFrame("Labels");
// Add components to
// the frame here...
f.pack();
f.show();
// Don't do any more GUI work here...
} …Run Code Online (Sandbox Code Playgroud) 我对从Android制作的JNI函数调用有疑问.它们是否与Android应用程序在同一个线程上运行?如果本机函数需要更多时间运行,UI是否会冻结?
我使用VLC作为rtsp服务器在Android MediaPlayer上实现了RTSP,代码如下:
# vlc -vvv /home/marco/Videos/pippo.mp4 --sout
#rtp{dst=192.168.100.246,port=6024-6025,sdp=rtsp://192.168.100.243:8080/test.sdp}
Run Code Online (Sandbox Code Playgroud)
并在Android项目上:
Uri videoUri = Uri.parse("rtsp://192.168.100.242:8080/test.sdp");
videoView.setVideoURI(videoUri);
videoView.start();
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我也想播放实时流RTP,所以我将sdp文件复制到sdcard(/mnt/sdcard/test.sdp)并设置vlc:
# vlc -vvv /home/marco/Videos/pippo.mp4 --sout
#rtp{dst=192.168.100.249,port=6024-6025}
Run Code Online (Sandbox Code Playgroud)
我尝试播放流RTP设置本地sdp文件的路径:
Uri videoUri = Uri.parse("/mnt/sdcard/test.sdp");
videoView.setVideoURI(videoUri);
videoView.start();
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误:
D/MediaPlayer( 9616): Couldn't open file on client side, trying server side
W/MediaPlayer( 9616): info/warning (1, 26)
I/MediaPlayer( 9616): Info (1,26)
E/PlayerDriver( 76): Command PLAYER_INIT completed with an error or info PVMFFailure
E/MediaPlayer( 9616): error (1, -1)
E/MediaPlayer( 9616): Error (1,-1)
D/VideoView( 9616): Error: 1,-1
Run Code Online (Sandbox Code Playgroud)
有谁知道问题出在哪里?我错了或者无法在MediaPlayer上播放RTP?干杯乔治
我无法确定何时surfaceDestroyed()发生.我试图让我的线程停止在surfaceDestroyed()方法(SurfaceView)中运行,但看起来我的表面永远不会被破坏...有人能告诉我这是什么时候发生的吗?或者如何触发它?
我使用Jackson生成JSON对象并将它们直接写入HTML的标记,如下所示:
<script>
var data = $SomeJacksonWrapper.toJson($data);
</script>
Run Code Online (Sandbox Code Playgroud)
如果包含一些字符串'</script>',则此代码会中断.转义正斜杠(/)将解决问题,并且它由JSON的规范赋予.
我如何在杰克逊中启用它?
我愿意开始开发NLP项目.我不太了解可用的工具.谷歌搜索大约一个月后.我意识到openNLP可以成为我的解决方案.
不幸的是,我没有看到任何关于使用API的完整教程.所有这些都缺乏一些一般步骤.我需要从地面开始的教程.我在网站上看到过很多下载但不知道如何使用它们?我需要训练什么吗?这是我想知道的 -
如何安装/设置一个nlp系统,它可以 -
我正在尝试用图像和提示创建一些看起来更漂亮的JTextFields.为此,我做了一个覆盖paintComponent方法的装饰器.我使用装饰器的原因是我想将它应用于其他类型的JTextField,例如JPasswordField.
这是我到目前为止所做的;

左边的表格中看到的问题是,即使我使用了JPasswordField,paintComponent也似乎忽略了我所假设的密码paintComponent,它可能是密码屏蔽符号.
所以问题是,如何避免重复JTextFields和JPasswordFields的代码,但仍然具有不同的功能,如密码屏蔽.
这是装饰器代码;
public class JTextFieldHint extends JTextField implements FocusListener{
private JTextField jtf;
private Icon icon;
private String hint;
private Insets dummyInsets;
public JTextFieldHint(JTextField jtf, String icon, String hint){
this.jtf = jtf;
setIcon(createImageIcon("icons/"+icon+".png",icon));
this.hint = hint;
Border border = UIManager.getBorder("TextField.border");
JTextField dummy = new JTextField();
this.dummyInsets = border.getBorderInsets(dummy);
addFocusListener(this);
}
public void setIcon(Icon newIcon){
this.icon = newIcon;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int textX = 2;
if(this.icon!=null){
int iconWidth = icon.getIconWidth();
int iconHeight = icon.getIconHeight(); …Run Code Online (Sandbox Code Playgroud) 我正在研究一种基于lisp(非常小的方案子集)编译成C++的玩具语言,我试图弄清楚如何表示let表达式,
(let ((var 10)
(test 12))
(+ 1 1)
var)
Run Code Online (Sandbox Code Playgroud)
起初我认为执行所有exprs然后返回最后一个,但是返回会杀死我的嵌套let表达式的能力,那么表示let的方法是什么?
此外,任何关于源到源转换的资源都是适用的,我已经用Google搜索,但我所能得到的只是90分钟的方案编译器.
java ×5
android ×4
swing ×2
android-ndk ×1
c ×1
c++ ×1
decorator ×1
dynamic ×1
escaping ×1
imagebutton ×1
jackson ×1
jsf-2 ×1
json ×1
jtextfield ×1
media-player ×1
nlp ×1
overlay ×1
rtp ×1
scheme ×1
surfaceview ×1